Marathon
| Time Limit: 1000MS |
|
Memory Limit: 262144KB |
|
64bit IO Format: %i64d &%i64u |
Submit Status
Description
Valera takes part in the Berland Marathon. The marathon race starts at the stadium so can be represented on the plane as a square whose lower left corner is locate D at point with Coordinates (0, 0) and the length of the side Equals a meters. The sides of the square is parallel to coordinate axes.
As the length of the marathon race is very long, Valera needs to has extra drink during the race. The coach gives Valera a bottle of drink eachD meters of the path. We know this Valera starts at the point with coordinates (0, 0) and runs counter-clockwise. That's, when Valera coversa meters, he reaches the point with coordinates (a, 0). We also know that the length of the marathon race equals nd + 0.5 meters.
Help Valera ' s coach determine where he should is located to help Valera. Specifically, determine the coordinates of Valera ' s positions when he covers d, 2 · D, ..., n· d meters.
Input
The first line contains space-separated real numbers a and D (1≤ a, D ≤105), given with precision till 4 decimal digits after the decimal point. Number a denotes the length of the square ' s side that describes the stadium. Number D shows this after all d meters Valera gets an extra drink.
The second line contains integer n(1≤ n ≤105) showing, Valera needs an extra DR Ink n times.
Output
print n lines, each line should contain both real Numbers x i and y i , separated by a space. Numbers x i and y i in the I -th line mean this Valera is at point with Coordinates ( x i , y i ) after he covers i · d meters. Your solution would be considered correct if the absolute or relative error doesn ' t exceed 10-4.
Note, that this problem has huge amount of output data. Please, don't use the cout stream for output in this problem.
Sample Input
Input
2 5
2
Output
1.0000000000 2.0000000000
2.0000000000 0.0000000000
Input
4.147 2.8819
6
Output
2.8819000000 0.0000000000
4.1470000000 1.6168000000
3.7953000000 4.1470000000
0.9134000000 4.1470000000
0.0000000000 2.1785000000
0.7034000000 0.0000000000
Source
Codeforces Round #237 (Div. 2)
The main idea: Run a marathon, someone to pass water. The site is a square with an edge length of a meter (running counterclockwise),
Every k-meter drink a píng of water, a total of npíng water. Ask about the location coordinates of each drink.
Title analysis: First to reduce the k to a circle below, and then you can ensure that no tle. Random simulation can be.
#include <stdio.h>intMain () {DoubleA,d,posx,posy,dd; intN,con; while(SCANF ("%lf%lf%d", &a,&dd,&n)! =EOF) {//1 Right 2 Upper 3 Left 4 downcon=1; Posx=posy=0; while(dd>=4*a) dd-=4*A; D=DD; while(n--) { Switch(Con) { Case 1: { if(posx+d<=a) {posx+=D; printf ("%.10f%.10f\n", Posx,posy); D=DD; } Else{d-=a-Posx; Posx=A; N++; Con++; } Break; } Case 2: { if(posy+d<=a) {posy+=D; printf ("%.10f%.10f\n", Posx,posy); D=DD; } Else{d-=a-Posy; Posy=A; N++; Con++; } Break; } Case 3: { if(posx-d>=0) {Posx-=D; printf ("%.10f%.10f\n", Posx,posy); D=DD; } Else{d-=Posx; Posx=0; N++; Con++; } Break; } Case 4: { if(posy-d>=0) {Posy-=D; printf ("%.10f%.10f\n", Posx,posy); D=DD; } Else{d-=Posy; Posy=0; N++; Con=1; } Break; } } } } return 0;}
CODEFORCES-404B (Simulated problem)