UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#166480#2907. moonLJ0710083ms1160kbC++111.0kb2022-11-20 11:36:242022-11-20 11:36:25

answer

#include <bits/stdc++.h>
#define For(i, l, r) for (int i(l), e##i(r); i <= e##i; ++i)
#define Rof(i, r, l) for (int i(r), e##i(l); i >= e##i; --i)
using namespace std;
template<class T>void rd(T &x, char c = getchar(), bool f = true)
{
	for (; !isdigit(c); c = getchar()) f = c != '-';
	for (x = 0; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
	x = f ? x : -x;
}
template<class A, class... B>void rd(A &x, B&... y) {rd(x), rd(y...);}
using i64 = long long;
using vi = vector<int> ;
template<const int T>using AR = array<int, T>;
#define pb push_back
#define SZ(x) (int)x.size()
const int N(1e3 + 5);
int n, q;
AR<2> moon[N + 5];
double pw(double x) {return x * x;}
signed main()
{
	rd(n, q);
	For(i, 1, n) rd(moon[i][0], moon[i][1]);
	while (q--)
	{
		int px, py, qx, qy, _d;
		rd(px, py, qx, qy);
		double d(1e9);
		For(i, 1, n) d = min(d, sqrt(pw(moon[i][0] - qx) + pw(moon[i][1] - qy)));
		d = ceil(d) - 1;
		_d = abs(px - qx) + abs(py - qy);
		if (_d >= d) puts("-1");
		else printf("%d\n", (int)d - _d - 1);
	}
    return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 8ms
memory: 1156kb

input:

1000 1000
0 212333
0 283947
0 419206
0 700211
0 704012
0 603222
0 346328
0 779005
0 124972
0 861984
...

output:

-1
-1
605
732
334
271
-1
-1
-1
-1
195
-1
606
-1
-1
-1
-1
166
-1
276
148
-1
278
-1
-1
113
-1
-1
-1
20...

result:

ok 1000 lines

Test #2:

score: 10
Accepted
time: 9ms
memory: 1160kb

input:

1000 1000
0 662423
0 606008
0 791196
0 242205
0 217045
0 457311
0 717943
0 858612
0 73523
0 101532
0...

output:

316
-1
-1
458
783
-1
632
-1
1163
164
-1
-1
-1
617
0
-1
-1
-1
47
399
210
481
-1
220
544
-1
64
-1
-1
2...

result:

ok 1000 lines

Test #3:

score: 10
Accepted
time: 5ms
memory: 1160kb

input:

1000 1000
0 828144
0 276070
0 984925
0 229830
0 40474
0 96831
0 146398
0 272704
0 264943
0 147051
0 ...

output:

21
-1
686
-1
-1
-1
92
-1
484
-1
-1
84
-1
-1
-1
-1
1034
-1
-1
-1
-1
-1
309
-1
-1
-1
-1
-1
-1
-1
-1
-1...

result:

ok 1000 lines

Test #4:

score: 10
Accepted
time: 8ms
memory: 1160kb

input:

1000 1000
0 341547
0 606717
0 79249
0 603397
0 777363
0 956846
0 965646
0 249422
0 583457
0 873475
0...

output:

-1
1361
767
-1
-1
-1
-1
555
761
575
699
-1
-1
-1
-1
-1
565
-1
579
111
572
-1
1121
-1
-1
780
422
230
...

result:

ok 1000 lines

Test #5:

score: 10
Accepted
time: 9ms
memory: 1156kb

input:

1000 1000
0 855912
0 760201
0 858056
0 836272
0 788744
0 994911
0 142988
0 467354
0 98575
0 635616
0...

output:

462
-1
113
-1
307
240
1498
953
-1
261
-1
288
1626
-1
75
38
-1
3521
737
121
-1
-1
-1
-1
1763
-1
-1
-1...

result:

ok 1000 lines

Test #6:

score: 10
Accepted
time: 10ms
memory: 1160kb

input:

1000 1000
381669 925292
514002 408344
412172 775834
879004 724399
81283 599326
982979 936347
513029 ...

output:

5267
32709
3218
19345
15684
5210
916
2554
4505
5362
800
464
2452
9433
747
7948
24534
10413
3406
7039...

result:

ok 1000 lines

Test #7:

score: 10
Accepted
time: 10ms
memory: 1156kb

input:

1000 1000
543803 844263
856944 503751
884464 629593
642723 534256
727730 875569
155824 514857
551581...

output:

393
31199
681
2712
19168
1316
21359
7302
26287
28057
917
571
3807
16781
21121
2338
12342
1196
3933
1...

result:

ok 1000 lines

Test #8:

score: 10
Accepted
time: 8ms
memory: 1156kb

input:

1000 1000
610538 921200
825059 254693
742633 941338
511931 636739
395274 972716
695703 722727
518638...

output:

7661
24565
5018
10129
93
6148
24921
9380
915
8156
1676
2582
1836
7197
20354
879
1258
4671
9851
1396
...

result:

ok 1000 lines

Test #9:

score: 10
Accepted
time: 6ms
memory: 1156kb

input:

1000 1000
510034 707043
347191 923962
910156 293115
759134 788880
815658 926241
889893 191765
915064...

output:

9021
20111
6902
5606
4996
18399
17267
5366
3080
16633
14831
81077
146
7110
50517
5031
10417
23747
-1...

result:

ok 1000 lines

Test #10:

score: 10
Accepted
time: 10ms
memory: 1160kb

input:

1000 1000
791074 773488
651651 784700
963407 913302
652959 857044
331287 754286
348852 470019
935094...

output:

8662
24748
7736
55328
11791
2676
13210
5679
2995
7172
45289
1839
4255
156
7512
1189
4306
1604
10717
...

result:

ok 1000 lines