DAVIDG - Davids Greed


The King David is a particularly miserly character. He has all the gold in his kingdom, and never lends a single coin to anyone. Years passed, and the streets in his kingdom, made by his father, King Enrique, started to deteriorate. The villagers couldn’t traffic with their carts without dropping some of their content.

This problem was affecting the merchants, because they were losing food and other stuff that they sell. So they decided to go to the castle and block the entrance, so the king couldn’t get out until he promised that he would restore the streets.

The King, tired by the annoyance of the people, decided to promise to restore the streets of his kingdom, but because he’s too greedy, he will restore only the ones that are important for the city, let’s call them “vital streets”.

The vital streets connect a commercial point A to a commercial point B in the city such that there will never exist 2 ways to go from point A to point B. This is given by some coordinates X and Y, you can assume the commercial point will be a single point in a space.

The original streets, built by King Enrique, connects every point with the other points, so point A is connected with point B, C, D, and so on. So restore every street would be too expensive, that’s why King David will restore only the “vital streets”, but he is not really good at this type of calculations, so he need you to write a program that help him out.

The cost of restoring a street is given by its length and some value P, that tell how much cost to restore a single unit of distance. By example, if P = 3, and the distance between points A and B is 3.5, then the total cost of restoring that street would be 3.5 * 3. Note: you have to round up the total cost of the street.

Input

The first line of input will consist of an integer T, denoting the number of test cases. Every test case will have by first line 2 integers, N and P, denoting the number of points and the unitary cost. Then N lines follow, every of them having 2 numbers Xi  and Yi, denoting the coordinates in the cartesian plane of every commercial point.

Output

For each test case output a single line containing this: “Scenario #i: j”, where i is the number of the test case, starting at one, and j is the minimum cost of restoring the streets, such as the restored streets let the villagers to go from one point to another point. Since this number can be quite large, output j mod 10^9 + 7.

Example

Input:
2
4 1
35 46
29 13
44 0
27 17
3 18
18 0
11 17
2 31

Output:
Scenario #1: 56
Scenario #2: 631

Constraints

1 ≤ N ≤ 1,000

-1,000 ≤ Xi, Yi ≤ 1,000

1 ≤ P ≤ 1,000


hide comments
hodobox: 2016-01-17 00:48:18

Sigh, had to get rid of both modulo and creating priority queue for each test case to fit into limit. What's the benefit of such a time constraint :/

naruto09: 2015-10-21 09:00:15

Answer of first test case is correct..?? Shouldn't it be 54..??

shuks: 2015-07-29 22:44:55

What should I use? Kruskal doesn't work. Please tell.

Rahul: 2015-07-09 13:05:26

Nice problem !
use ceil() instead of round()

Shubham Grover: 2015-06-25 05:25:54

strict time limit

Last edit: 2015-06-25 08:41:34
Abhishek pratap singh: 2015-06-24 09:23:41

Any idea what could be causing (SIGABRT) error in this particular problem?
I am using sqrt fucntion,conversion between( float and long long int) and Vector STL.

EDIT: Finally got AC , I was using Kruskal's algorithm earlier but realised that I can't store the edges (It was exceeding the memory limit ).

Last edit: 2015-06-24 22:34:24
ankit bisla: 2014-12-29 22:58:54

test cases contain what you need..look carefully :)

ankit agarwal: 2014-09-15 13:31:54

Is Answer for 1st case right,shouldnt it be 54?

mehmetin: 2012-04-23 21:28:12

nice problem

Last edit: 2012-04-23 05:13:30

Added by:Luis Arguello
Date:2012-04-22
Time limit:0.100s-1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM32-GCC ASM64 MAWK BC C-CLANG NCSHARP CPP14 CPP14-CLANG COBOL COFFEE D-CLANG D-DMD DART ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM NODEJS OBJC OBJC-CLANG OCT PICO PROLOG PYPY PYPY3 PY_NBC R RACKET RUST CHICKEN SQLITE SWIFT UNLAMBDA VB.NET
Resource:Own problem.