QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#379659#8030. Traveling in the Grid Worldcomeintocalm#AC ✓307ms3944kbC++171.1kb2024-04-06 18:07:122024-04-06 18:07:14

Judging History

你现在查看的是最新测评结果

  • [2024-04-06 18:07:14]
  • 评测
  • 测评结果:AC
  • 用时:307ms
  • 内存:3944kb
  • [2024-04-06 18:07:12]
  • 提交

answer

#include <bits/stdc++.h>
#define LL long long
#define db double
using namespace std;

const db eps = 1e-10;
int T;
int n, m;
db ans;

int gcd (int x, int y) {
	return y ? gcd (y, x % y) : x;
}

int Gcd (int x, int y) {
	if (!x || !y) return 1;
	return gcd (x, y);
}

db calc (db x, db y) {
	return sqrtl (x * x + y * y);
}

void work() {
	//cout << 'a' << endl;
	int x = 0, y = 0;
	//db fk = ((db) m) / n;
	//cout << x << " " << y << endl;
	while (x != n || y != m) {
		if (x == n) ++y;
		else if ((LL)(y + 1) * n < (LL) m * x) ++y;
		else ++x;
		if (Gcd (x, y) == 1 && Gcd (n - x, m - y) == 1)
		ans = min (ans, calc (x, y) + calc (n - x, m - y));
		//cout << x << " " << y << endl;
	}
}

int main() {
	//freopen("rdin.in", "r", stdin);
	//freopen("x.out", "w", stdout);
	int i,j,k;
	//cout << (int) (1.99) << endl;
	scanf ("%d", &T);
	//T = 1;
	while (T--) {
		scanf ("%d%d", &n, &m);
		ans = 1e18;
		//cout << gcd (n, m);
		if (Gcd (n, m) == 1) ans = calc (n, m);
		else work(), swap (n, m), work();
		printf ("%.15f\n", ans);
	}
	return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3848kb

input:

2
2 2
2 3

output:

3.236067977499790
3.605551275463989

result:

ok 2 numbers

Test #2:

score: 0
Accepted
time: 1ms
memory: 3808kb

input:

225
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 10
2 11
2 12
2 13
2 14
2 15
3 1
3 2
3 3
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
3 12
3 13
3 14
3 15
4 1
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
4 10
4 11
4 12
4 13
4 14
4 15
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
...

output:

1.414213562373095
2.236067977499790
3.162277660168380
4.123105625617661
5.099019513592784
6.082762530298219
7.071067811865476
8.062257748298549
9.055385138137417
10.049875621120890
11.045361017187261
12.041594578792296
13.038404810405298
14.035668847618199
15.033296378372908
2.236067977499790
3.2360...

result:

ok 225 numbers

Test #3:

score: 0
Accepted
time: 44ms
memory: 3904kb

input:

6000
119 101
13 90
96 3
20 99
42 79
57 22
78 138
42 157
179 93
195 12
24 195
62 129
31 166
128 9
46 118
123 113
99 128
187 45
154 84
24 109
143 91
96 100
146 168
115 98
176 36
99 70
198 174
119 33
130 92
184 9
56 196
6 118
136 166
150 118
178 43
105 47
36 4
132 162
171 53
37 180
11 171
77 67
199 51
...

output:

156.083311087380508
90.934042030473933
96.046886075716060
101.000000000000000
89.470665583754325
61.098281481560512
158.518156028175156
162.520767903674397
201.717624415914628
195.368884346966837
196.471374493754354
143.125818774950602
168.869772309907489
128.316016147634514
126.649125933847046
167....

result:

ok 6000 numbers

Test #4:

score: 0
Accepted
time: 54ms
memory: 3896kb

input:

1400
231 870
23 319
363 117
561 492
841 470
849 886
2 611
921 397
227 916
669 867
874 371
533 16
841 789
782 469
367 291
778 136
694 120
593 89
22 575
6 44
180 871
661 554
397 860
265 547
521 412
809 804
6 554
272 867
240 695
408 900
917 926
47 747
748 750
321 151
291 114
330 31
543 194
387 432
144 ...

output:

900.144988346139598
319.828078817354594
381.389564951911780
746.180273168174381
963.421506922074059
1227.109204594277344
611.003273313654176
1002.920734654538933
943.708111653174228
1095.102734920367084
949.482490623181548
533.240096016794269
1153.170412384917199
911.857993330101863
468.369512244338...

result:

ok 1400 numbers

Test #5:

score: 0
Accepted
time: 47ms
memory: 3924kb

input:

140
3868 307
1542 8425
7856 1284
8129 8657
773 3877
3073 1195
9579 2327
4058 1337
7080 2717
4183 8192
6189 9162
4094 9648
8098 864
5240 9869
6891 8861
9787 7768
321 97
3839 1384
3271 461
1031 8399
7425 278
6201 2581
2426 9301
3153 6278
3317 9760
34 6044
328 9027
9636 6166
8786 9001
9148 1501
6941 61...

output:

3880.164042923958732
8564.951196591840926
7960.238187391192696
11875.364836500959427
3953.309752599712283
3297.173638133120676
9857.594534165016739
4272.579197627587746
7583.435171477369295
9198.171176924248357
11056.489723234961275
10480.684137974971236
8143.960952755131984
11173.842714124804843
11...

result:

ok 140 numbers

Test #6:

score: 0
Accepted
time: 49ms
memory: 3848kb

input:

15
92173 34960
85436 79002
67020 16430
77956 88069
10526 52318
63416 18293
13873 21386
41723 31777
89639 91343
48769 44631
41406 14388
52543 19309
89807 68272
22189 65756
16037 54219

output:

98580.239039069085266
116364.195953910151729
69004.531010651757242
117614.993504229729297
53366.373307542642578
66001.688652639786596
25491.589299217888765
52446.033768055327528
127979.271641934261424
66108.558613843633793
43834.591135312301049
55978.606002650689334
112811.183988999953726
69398.8707...

result:

ok 15 numbers

Test #7:

score: 0
Accepted
time: 26ms
memory: 3924kb

input:

100
32 1357
71 18212
88 4150
5393 87
3137 50
18767 92
28 6442
29 11081
99 10064
54 17202
87 18903
12158 64
18148 4
7 6246
8293 51
14952 79
15079 87
3525 72
18014 61
22 12994
128 13
78 14983
19850 45
66 14787
8122 25
13318 21
18323 58
805 33
98 12252
14201 86
48 3265
14720 50
88 18800
9595 20
55 1484...

output:

1357.377250435559745
18212.138397233862634
4150.932907191001505
5393.701697350345967
3137.398444571552773
18767.225500856540748
6442.060850380132251
11081.037947773666019
10064.486921845544202
17202.084757377535425
18903.200205256252957
12158.168447591113363
18148.000440819923824
6246.00392250917502...

result:

ok 100 numbers

Test #8:

score: 0
Accepted
time: 7ms
memory: 3944kb

input:

10
917 58363
44248 132
40874 823
397 22878
58217 320
353 200933
916 230431
775 68654
29128 744
789 24656

output:

58370.203511723339034
44248.196889816877956
40882.284733121261525
22881.444294449596782
58217.879461553733563
200933.310075756220613
230432.820615900971461
68658.374150572490180
29137.500235950239585
24668.620897812670592

result:

ok 10 numbers

Test #9:

score: 0
Accepted
time: 48ms
memory: 3816kb

input:

10
29426 81241
88905 209351
47528 40197
3341 95362
21284 82971
222683 93678
31532 19932
38832 87802
49584 60906
52331 10237

output:

86405.957879072200740
227446.565650044503855
62247.165341081999941
95420.507884835737059
85657.431067012512358
241584.946081083442550
37303.507180960878031
96005.809345059940824
78537.340749480426894
53322.881861354791909

result:

ok 10 numbers

Test #10:

score: 0
Accepted
time: 0ms
memory: 3808kb

input:

2
49111 368792
490769 13502

output:

372047.617362347838935
490954.697874457633588

result:

ok 2 numbers

Test #11:

score: 0
Accepted
time: 0ms
memory: 3836kb

input:

1
732421 964572

output:

1211131.563631713856012

result:

ok found '1211131.563631714', expected '1211131.563631714', error '0.000000000'

Test #12:

score: 0
Accepted
time: 0ms
memory: 3872kb

input:

1
36078 937705

output:

938398.790018934290856

result:

ok found '938398.790018934', expected '938398.790018934', error '0.000000000'

Test #13:

score: 0
Accepted
time: 194ms
memory: 3880kb

input:

1
993066 148246

output:

1004070.195191551232710

result:

ok found '1004070.195191551', expected '1004070.195191551', error '0.000000000'

Test #14:

score: 0
Accepted
time: 0ms
memory: 3904kb

input:

1
42547 995544

output:

996452.760117106605321

result:

ok found '996452.760117107', expected '996452.760117107', error '0.000000000'

Test #15:

score: 0
Accepted
time: 0ms
memory: 3880kb

input:

1
994185 122012

output:

1001644.019783974974416

result:

ok found '1001644.019783975', expected '1001644.019783975', error '0.000000000'

Test #16:

score: 0
Accepted
time: 1ms
memory: 3904kb

input:

1
893299 999105

output:

1340221.587807777337730

result:

ok found '1340221.587807777', expected '1340221.587807777', error '0.000000000'

Test #17:

score: 0
Accepted
time: 1ms
memory: 3912kb

input:

1
999507 38171

output:

1000235.606389814522117

result:

ok found '1000235.606389815', expected '1000235.606389815', error '0.000000000'

Test #18:

score: 0
Accepted
time: 248ms
memory: 3812kb

input:

1
999994 372210

output:

1067018.408527238061652

result:

ok found '1067018.408527238', expected '1067018.408527238', error '0.000000000'

Test #19:

score: 0
Accepted
time: 0ms
memory: 3812kb

input:

1
999945 517082

output:

1125728.118929699761793

result:

ok found '1125728.118929700', expected '1125728.118929700', error '0.000000000'

Test #20:

score: 0
Accepted
time: 196ms
memory: 3808kb

input:

1
999495 444185

output:

1093750.688799783121794

result:

ok found '1093750.688799783', expected '1093750.688799783', error '0.000000000'

Test #21:

score: 0
Accepted
time: 251ms
memory: 3812kb

input:

1
999994 372210

output:

1067018.408527238061652

result:

ok found '1067018.408527238', expected '1067018.408527238', error '0.000000000'

Test #22:

score: 0
Accepted
time: 307ms
memory: 3808kb

input:

1
561402 999944

output:

1146760.746075657894835

result:

ok found '1146760.746075658', expected '1146760.746075658', error '0.000000000'

Test #23:

score: 0
Accepted
time: 40ms
memory: 3876kb

input:

1
999990 999999

output:

1414205.784212820930406

result:

ok found '1414205.784212821', expected '1414205.784212821', error '0.000000000'

Extra Test:

score: 0
Extra Test Passed