CSES - HIIT Open 2024 - Results
Submission details
Task:Gerbil's run
Sender:(╯°□°)╯︵ ┻━┻
Submission time:2024-11-16 16:59:55 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#20.00 sdetails
#30.00 sdetails
#40.00 sdetails
#50.00 sdetails
#60.00 sdetails
#70.00 sdetails
#80.00 sdetails
#90.00 sdetails
#100.00 sdetails
#110.00 sdetails
#120.00 sdetails
#130.00 sdetails
#140.00 sdetails
#150.00 sdetails
#160.00 sdetails
#170.00 sdetails
#180.00 sdetails
#190.00 sdetails
#200.00 sdetails
#210.00 sdetails
#220.00 sdetails
#230.00 sdetails
#240.00 sdetails
#250.00 sdetails
#260.00 sdetails
#270.00 sdetails
#280.00 sdetails
#290.00 sdetails
#300.00 sdetails
#310.00 sdetails
#320.00 sdetails
#330.00 sdetails
#340.00 sdetails
#350.00 sdetails
#360.00 sdetails
#370.00 sdetails
#380.00 sdetails
#390.00 sdetails
#400.01 sdetails
#410.01 sdetails
#420.01 sdetails
#430.01 sdetails
#440.01 sdetails
#450.01 sdetails

Code

#include <iostream>
#include <cmath>
using namespace std;

typedef long double ld;
typedef long long ll;

ll B;

int gcd(int a, int b) {
	return b?gcd(b,a%b):a;
}

bool trySolve(ll n, ll r) {
	if (n<=0) return 0;
	ld len = 2*M_PI*r;
	ld olen = (len-n) / n;
	if (olen > 1.99) return 0;
	if (olen < 1.01) return 0;
	for(ll i=0; i<n; ++i) {
		ld cur = i*len/n;
		ll a = cur/r*B + 0.5;
		ll g = gcd(a,B);
		cout<<a/g<<'/'<<B/g<<' '<<(a+B/r)/g<<'/'<<B/g<<'\n';
	}
	return 1;
}

int main() {
	ll r;cin>>r;
	B = 1000000/r*r;
	ld len = 2*M_PI*r;
	ld ax = len / 2.5;
	ll a = ax;
	if (trySolve(ax+0.5, r)) return 0;
	if (trySolve(a, r)) return 0;
	if (trySolve(a+1, r)) return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
1

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 1/1
418879/200000 618879/200000
418879/100000 518879/100000

Test 2

Verdict:

input
2

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
1256637/1000000 1756637/100000...

Test 3

Verdict:

input
3

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
261799/333333 372910/333333
1570795/999999 1904128/999999
2356192/999999 2689525/999999
3141590/999999 3474923/999999
...

Test 4

Verdict:

input
4

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
628319/1000000 878319/1000000
1256637/1000000 1506637/100000...

Test 5

Verdict:

input
5

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
241661/500000 341661/500000
241661/250000 291661/250000
724983/500000 824983/500000
241661/125000 266661/125000
...

Test 6

Verdict:

input
6

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
418877/999996 585543/999996
837755/999996 1004421/999996
314158/249999 355824/249999
558503/333332 614058/333332
...

Test 7

Verdict:

input
7

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
349066/999999 491923/999999
99733/142857 120141/142857
1047197/999999 1190054/999999
199466/142857 219874/142857
...

Test 8

Verdict:

input
8

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
314159/1000000 439159/1000000
628319/1000000 753319/1000000
471239/500000 533739/500000
1256637/1000000 1381637/100000...

Test 9

Verdict:

input
9

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
3002/10989 4223/10989
60707/111111 73052/111111
819545/999999 930656/999999
1092727/999999 1203838/999999
...

Test 10

Verdict:

input
10

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
251327/1000000 351327/1000000
100531/200000 120531/200000
376991/500000 426991/500000
100531/100000 110531/100000
...

Test 11

Verdict:

input
11

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
32057/142857 45044/142857
34523/76923 41516/76923
673198/999999 764107/999999
99733/111111 109834/111111
...

Test 12

Verdict:

input
12

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
69813/333332 97590/333332
418877/999996 502210/999996
157079/249999 177912/249999
837755/999996 921088/999996
...

Test 13

Verdict:

input
13

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
17309/90909 24302/90909
42311/111111 50858/111111
571198/999999 648121/999999
761597/999999 838520/999999
...

Test 14

Verdict:

input
14

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
89759/499996 125473/499996
89759/249998 107616/249998
269277/499996 304991/499996
718073/999992 789501/999992
...

Test 15

Verdict:

input
15

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
11023/66666 15467/66666
330691/999990 397357/999990
248018/499995 281351/499995
661381/999990 728047/999990
...

Test 16

Verdict:

input
16

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
3927/25000 5489/25000
314159/1000000 376659/1000000
471239/1000000 533739/1000000
628319/1000000 690819/1000000
...

Test 17

Verdict:

input
17

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
146119/999991 204942/999991
292239/999991 351062/999991
438358/999991 497181/999991
34381/58823 37841/58823
...

Test 18

Verdict:

input
18

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
27925/199998 39036/199998
27925/99999 33480/99999
27925/66666 31628/66666
55850/99999 61405/99999
...

Test 19

Verdict:

input
19

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
130898/999989 183529/999989
261797/999989 314428/999989
392695/999989 445326/999989
523593/999989 576224/999989
...

Test 20

Verdict:

input
20

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
3927/31250 5489/31250
251327/1000000 301327/1000000
376991/1000000 426991/1000000
100531/200000 110531/200000
...

Test 21

Verdict:

input
50

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
49867/1000000 69867/1000000
99733/1000000 119733/1000000
187/1250 212/1250
99733/500000 109733/500000
...

Test 22

Verdict:

input
98

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
25541/999992 35745/999992
25541/499996 30643/499996
9578/124999 10853/124999
2085/20408 2293/20408
...

Test 23

Verdict:

input
99

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
62/2457 86/2457
50467/999999 60568/999999
75701/999999 85802/999999
11215/111111 12337/111111
...

Test 24

Verdict:

input
100

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
25033/1000000 35033/1000000
10013/200000 12013/200000
37549/500000 42549/500000
10013/100000 11013/100000
...

Test 25

Verdict:

input
101

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
12367/499950 17317/499950
49469/999900 59369/999900
74203/999900 84103/999900
49469/499950 54419/499950
...

Test 26

Verdict:

input
102

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
24541/999906 34344/999906
16361/333302 19628/333302
36812/499953 41713/499953
16361/166651 17994/166651
...

Test 27

Verdict:

input
158

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
7913/499991 11077/499991
31653/999982 37982/999982
601/12658 681/12658
31653/499991 34817/499991
...

Test 28

Verdict:

input
159

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
15707/999951 21996/999951
31414/999951 37703/999951
47122/999951 53411/999951
20943/333317 23039/333317
...

Test 29

Verdict:

input
160

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
1563/100000 2188/100000
1563/50000 1875/50000
46889/1000000 53139/1000000
62519/1000000 68769/1000000
...

Test 30

Verdict:

input
161

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
15514/999971 21725/999971
1349/43477 1619/43477
46541/999971 52752/999971
2698/43477 2968/43477
...

Test 31

Verdict:

input
313

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
7981/999722 11175/999722
51/3194 61/3194
11972/499861 13569/499861
51/1597 56/1597
...

Test 32

Verdict:

input
314

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
3981/499888 5573/499888
15923/999776 19107/999776
23885/999776 27069/999776
31847/999776 35031/999776
...

Test 33

Verdict:

input
315

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
1322/166635 1851/166635
2644/166635 3173/166635
4759/199962 5393/199962
31727/999810 34901/999810
...

Test 34

Verdict:

input
316

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
989/124978 1384/124978
989/62489 1186/62489
2967/124978 3362/124978
1978/62489 2175/62489
...

Test 35

Verdict:

input
317

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
3941/499909 5518/499909
7882/499909 9459/499909
11823/499909 13400/499909
15764/499909 17341/499909
...

Test 36

Verdict:

input
318

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
3931/499896 5503/499896
3931/249948 4717/249948
23587/999792 26731/999792
10483/333264 11531/333264
...

Test 37

Verdict:

input
319

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
356/45443 498/45443
15665/999746 18799/999746
23497/999746 26631/999746
15665/499873 17232/499873
...

Test 38

Verdict:

input
320

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
1563/200000 2188/200000
1563/100000 1875/100000
4689/200000 5314/200000
1563/50000 1719/50000
...

Test 39

Verdict:

input
500

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
4999/1000000 6999/1000000
9997/1000000 11997/1000000
3749/250000 4249/250000
9997/500000 10997/500000
...

Test 40

Verdict:

input
990

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
1/396 1/396
1/198 1/198
1/132 1/132
3367/333300 3703/333300
...

Test 41

Verdict:

input
996

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
5/1992 7/1992
5/996 6/996
7531/999984 8535/999984
3347/333328 3681/333328
...

Test 42

Verdict:

input
997

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
2507/999991 3510/999991
5014/999991 6017/999991
7522/999991 8525/999991
10029/999991 11032/999991
...

Test 43

Verdict:

input
998

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
5/1996 7/1996
5/998 6/998
1879/249999 2129/249999
10021/999996 11023/999996
...

Test 44

Verdict:

input
999

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
278/111111 389/111111
5/999 6/999
7507/999999 8508/999999
10009/999999 11010/999999
...

Test 45

Verdict:

input
1000

correct output
0/1000000 1000000/1000000
2000000/1000000 3000000/100000...

user output
0/1 0/1
1/400 1/400
5001/1000000 6001/1000000
7501/1000000 8501/1000000
10001/1000000 11001/1000000
...