QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#533801#3955. ArchipelagoYarema#AC ✓12ms3900kbC++201.3kb2024-08-26 14:49:122024-08-26 14:49:13

Judging History

This is the latest submission verdict.

  • [2024-08-26 14:49:13]
  • Judged
  • Verdict: AC
  • Time: 12ms
  • Memory: 3900kb
  • [2024-08-26 14:49:12]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) int(a.size())
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second

typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef double db;

struct DSU
{
	int n;
	VI p, sz;
	
	DSU(int _n = 0) 
	{
		n = _n;
		p.resize(n);
		iota(ALL(p), 0);
		sz.assign(n, 1);
	}
	int find(int v)
	{
		if (v == p[v])
			return v;
		return p[v] = find(p[v]);
	}
	bool unite(int u, int v)
	{
		u = find(u);
		v = find(v);
		if (u == v) 
			return false;
		if (sz[u] > sz[v])
			swap(u, v);
		p[u] = v;
		sz[v] += sz[u];
		return true;
	}
};


int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	int n, d;
	cin >> n >> d;
	vector<PII> v(n);
	DSU ds(n);
	FOR (i, 0, n)
	{
		cin >> v[i].F >> v[i].S;
		FOR (j, 0, i)
		{
			int dx = v[i].F - v[j].F;
			int dy = v[i].S - v[j].S;
			if (dx * dx + dy * dy <= d * d)
				ds.unite(i, j);
		}
	}
	vector<PII> ans;
	FOR (i, 0, n)
		ans.PB({-ds.sz[ds.find(i)], i});
	sort(ALL(ans));
	FOR (i, 0, n)
	{
		if (i)
			cout << ' ';
		cout << ans[i].S + 1;
	}
	cout << '\n';
	
	return 0;
}

详细

Test #1:

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

input:

7 3
1 1
3 2
2 3
4 2
12 5
13 7
11 6

output:

1 2 3 4 5 6 7

result:

ok 

Test #2:

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

input:

3 4
2 5
5 0
4 4

output:

1 3 2

result:

ok 

Test #3:

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

input:

25 3
111 88
4 18
313 211
210 134
247 161
210 149
357 252
89 87
266 171
232 158
53 68
171 111
12 41
336 222
75 73
29 56
59 72
353 235
152 106
129 97
7 26
183 113
284 189
301 200
186 115

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

result:

ok 

Test #4:

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

input:

25 3
6 9
6 6
3 0
12 12
0 3
12 9
9 0
3 3
12 6
6 3
3 6
12 3
0 0
9 3
6 0
0 12
3 9
6 12
9 6
3 12
12 0
9 9
0 6
0 9
9 12

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

result:

ok 

Test #5:

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

input:

25 5
0 102
0 144
0 138
0 36
0 72
0 54
0 90
0 24
0 132
0 66
0 0
0 84
0 78
0 120
0 18
0 12
0 30
0 96
0 114
0 108
0 6
0 48
0 42
0 126
0 60

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

result:

ok 

Test #6:

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

input:

25 3
0 27
0 69
0 36
0 3
0 72
0 54
0 21
0 15
0 57
0 24
0 66
0 33
0 0
0 51
0 45
0 18
0 12
0 63
0 30
0 39
0 6
0 48
0 42
0 9
0 60

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

result:

ok 

Test #7:

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

input:

25 3
0 64
0 20
0 56
0 76
0 16
0 36
0 72
0 28
0 32
0 24
0 44
0 4
0 40
0 0
0 84
0 12
0 80
0 8
0 92
0 96
0 52
0 88
0 48
0 68
0 60

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

result:

ok 

Test #8:

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

input:

25 12
194 188
293 305
254 265
69 46
283 298
163 146
230 232
44 27
217 211
261 274
320 370
47 31
305 351
125 97
296 327
34 26
18 2
243 248
105 81
219 227
159 138
93 70
183 165
142 115
107 90

output:

8 12 16 3 6 10 19 21 25 1 2 4 5 7 9 11 13 14 15 17 18 20 22 23 24

result:

ok 

Test #9:

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

input:

20 10
0 0
10 30
30 0
47 55
10 10
0 20
30 20
20 20
20 30
20 0
0 30
20 10
31 35
30 10
44 37
0 10
10 20
51 67
10 0
70 69

output:

1 2 3 5 6 7 8 9 10 11 12 14 16 17 19 4 13 15 18 20

result:

ok 

Test #10:

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

input:

25 7
1 3
3 0
0 2
2 1
0 3
4 0
1 2
3 3
4 4
2 2
0 4
4 1
1 1
3 2
0 0
1 4
2 3
4 2
1 0
0 1
3 1
2 0
4 3
3 4
2 4

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

result:

ok 

Test #11:

score: 0
Accepted
time: 12ms
memory: 3652kb

input:

1937 3
450874 463736
425600 437931
1076434 1115420
1831853 1924061
1082975 1124089
1516736 1582110
774378 800971
1079369 1118978
990985 1026102
1540547 1614631
332841 345307
760457 788322
342324 360308
1130132 1165908
1561518 1636935
850008 877177
1347029 1396095
863812 891225
1707092 1781490
609525...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #12:

score: 0
Accepted
time: 3ms
memory: 3680kb

input:

1936 3
78 39
99 126
90 42
93 15
9 0
15 30
66 66
111 123
96 123
60 81
117 96
45 78
114 60
63 117
54 87
9 9
66 42
108 126
24 21
81 36
120 9
45 54
66 93
30 111
12 129
96 114
117 105
120 120
84 102
57 60
75 102
99 108
63 114
12 90
105 117
90 60
27 72
105 6
51 126
15 108
108 117
111 24
66 84
123 45
87 3
...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #13:

score: 0
Accepted
time: 3ms
memory: 3664kb

input:

2000 5
0 378
0 8724
0 11064
0 3282
0 6666
0 8100
0 9054
0 1224
0 10338
0 11958
0 408
0 9522
0 9900
0 4080
0 5124
0 7464
0 636
0 10368
0 11322
0 5454
0 5880
0 8358
0 1104
0 10698
0 5922
0 480
0 666
0 9780
0 4338
0 7722
0 9156
0 10110
0 2280
0 1464
0 10578
0 10956
0 6180
0 8520
0 738
0 10140
0 11424
0...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #14:

score: 0
Accepted
time: 3ms
memory: 3676kb

input:

2000 3
0 378
0 1113
0 2547
0 3282
0 3591
0 5931
0 489
0 1224
0 4347
0 408
0 4080
0 4389
0 5124
0 636
0 2805
0 5454
0 5880
0 369
0 747
0 1104
0 5922
0 480
0 666
0 2169
0 4338
0 4647
0 2280
0 627
0 1464
0 5445
0 189
0 738
0 5007
0 657
0 2160
0 987
0 1722
0 5703
0 4887
0 180
0 2520
0 2829
0 4998
0 510
...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #15:

score: 0
Accepted
time: 3ms
memory: 3496kb

input:

2000 3
0 7616
0 532
0 2872
0 4172
0 5776
0 1224
0 3356
0 4640
0 7028
0 408
0 1708
0 4080
0 5124
0 7464
0 636
0 2176
0 4564
0 5880
0 7948
0 1104
0 3428
0 5000
0 6364
0 480
0 1588
0 3928
0 5228
0 6832
0 964
0 2280
0 4412
0 5696
0 7316
0 1464
0 2764
0 4880
0 6180
0 328
0 1948
0 3232
0 5620
0 6680
0 812...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #16:

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

input:

1937 12
377135 395489
1687262 1689905
812152 843106
226215 248895
1564031 1565502
884767 917333
1392483 1417902
1051139 1086488
37362 41112
1327427 1358465
2994 3886
1366751 1395642
1504965 1511950
395136 418725
1806677 1806412
1461930 1477980
1073754 1112505
347792 359186
730665 755599
875004 90674...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #17:

score: 0
Accepted
time: 3ms
memory: 3616kb

input:

1941 10
430 60
110 190
330 240
170 130
390 50
210 310
3833 3441
130 170
410 330
30 100
70 400
150 280
170 420
410 0
90 130
270 390
290 320
240 160
150 70
170 250
10 310
390 410
130 50
20 280
330 330
410 290
30 220
360 350
270 160
90 420
330 0
420 130
40 230
150 160
190 390
220 60
120 120
10 430
250 ...

output:

1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 10...

result:

ok 

Test #18:

score: 0
Accepted
time: 8ms
memory: 3900kb

input:

2000 66
31 6
40 22
21 28
4 36
43 3
7 25
29 44
33 41
36 34
9 0
34 8
15 30
37 13
24 14
13 20
3 2
28 10
31 15
1 40
40 29
21 37
4 35
8 38
7 22
29 37
33 34
16 38
36 41
41 34
22 12
9 9
34 3
24 21
13 13
0 14
38 31
3 11
28 1
1 33
40 4
4 42
7 15
16 29
41 43
22 7
44 16
12 41
34 26
24 28
10 19
13 6
0 5
38 22
2...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 

Test #19:

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

input:

10 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10

output:

1 2 3 4 5 6 7 8 9 10

result:

ok 

Test #20:

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

input:

1 1
1 1

output:

1

result:

ok 

Test #21:

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

input:

6 3
1 1
4 4
5 5
8 8
9 9
10 10

output:

4 5 6 2 3 1

result:

ok 

Test #22:

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

input:

4 2
1 1
2 2
8 8
9 9

output:

1 2 3 4

result:

ok