Files

Visualizer.jar
EnclosingCirclesVis.java
To use the visualizer for testing your solution locally, you'll have to adopt your solution to read parameters from standard in and write the output to standard out. This doesn't affect the functioning of the solution you submit to our server.

Your program should first read the number of allowed circles M. Then you should read the number of points N. Then you should read N lines, each corresponds to one element from the pointX array. Then you should read N lines, each corresponds to one element from the pointY array. Finally, you should output the number of circles you placed K, followed by K lines containing the elements of your return and flush standard out.

To do this, you should implement the following pseudocode:
    main
    {   
        M = int(readLine())
        N = int(readLine())
        for (i=0; i<N; i++)
            pointx[i] = int(readLine())
        for (i=0; i<N; i++)
            pointy[i] = int(readLine())
        ret = placeCircles(pointx, pointy, M)
        printLine(ret.length)
        for (i=0; i<ret.length; i++)
            printLine(ret[i])
        flush(stdout)
    }
To run the visualizer with your solution, you should run:
java -jar Visualizer.jar -exec "<command>" -seed <seed>
Here, <command> is the command to execute your program, and <seed> is seed for test case generation. Additionally you can use "-vis <name>" option to generate a file <name>.png which shows the points with the circles you placed. Green dots indicates points that falls inside a circle, while red dots indicates points that do not fall inside any circle. The circles you placed will be displayed in blue. If you set <name> to "-" (quotes for clarity only) for -vis, the image will be displayed in a window instead of written to the file.

Finally, you can print any debug information of your solution to standard error, and it will be forwarded to the standard out of the visualizer.