QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#359666#5173. 染色zyc0704190 15ms11912kbC++14790b2024-03-20 19:50:362024-03-20 19:50:36

Judging History

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

  • [2024-03-20 19:50:36]
  • 评测
  • 测评结果:0
  • 用时:15ms
  • 内存:11912kb
  • [2024-03-20 19:50:36]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 3;

inline int read() {
	char ch = getchar(); int x = 0;
	while (!isdigit(ch)) {ch = getchar();}
	while (isdigit(ch)) {x = x * 10 + ch - 48; ch = getchar();}
	return x;
}

int n, T, a[N], lst[N], pre[N], val[N];

int main() {
	n = read(); T = read();
	for (int i = 1; i <= n; ++i) a[i] = read();
	for (int i = 1; i <= n; ++i) lst[i] = 0;
	for (int i = 1; i <= n; ++i) {
		pre[i] = lst[a[i]];
		lst[a[i]] = i;
		for (int j = pre[i] + 1; j < i; ++j) val[i] = max(val[i], pre[j]);
	}
	while (T--) {
		int l = read(), r = read(), ans;
		if (l > r) l ^= r ^= l ^= r;
		ans = 2 * (r - l);
		for (int i = l; i <= r; ++i)
			if (pre[i] >= l && val[i] < l) ans--;
		printf("%d\n", ans);
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 10008kb

input:

10000 100
84 85 52 2 78 53 20 21 23 76 37 44 18 5 37 8 81 65 46 58 69 1 69 37 53 46 37 35 35 89 1 77 35 6 46 59 89 46 25 55 50 38 61 67 44 23 29 24 46 4 42 15 34 77 20 34 83 79 12 50 69 26 38 14 9 66 80 72 22 26 9 68 35 38 19 84 92 30 83 62 100 71 81 60 7 37 64 50 33 60 86 75 45 78 32 53 3 48 87 60 ...

output:

3808
4756
6209
8702
753
7285
188
7598
511
1185
261
2330
13729
6497
472
7798
2234
10892
1856
2769
4985
300
6226
648
6919
6419
11844
2815
3282
8135
18461
530
5692
18516
9937
6388
5188
15139
690
478
16212
13155
9215
8132
11402
6862
6648
5222
9453
8855
2260
10698
2787
13026
5142
2227
9139
1979
6719
2942...

result:

wrong answer 1st words differ - expected: '3668', found: '3808'

Subtask #2:

score: 0
Time Limit Exceeded

Test #7:

score: 0
Time Limit Exceeded

input:

100000 100000
3 2 3 3 3 3 2 3 2 1 3 1 1 1 3 2 1 3 1 2 2 1 3 1 2 2 1 1 1 3 2 1 3 3 3 3 1 1 1 2 3 3 2 1 1 1 3 1 3 1 3 2 1 3 2 3 3 2 3 3 2 3 3 3 3 3 2 3 2 3 1 3 3 3 3 3 3 3 1 2 3 3 1 3 1 1 2 2 3 1 1 2 3 2 3 1 3 2 1 3 2 3 2 1 1 3 3 1 3 1 2 2 2 3 2 3 2 3 2 1 1 3 1 3 2 2 3 3 3 1 2 2 3 3 2 1 3 1 2 2 2 3 2 ...

output:

128352
150898
62213
7320
10432
88757
106496
33161
44093
126519
75567
8158
74875
48480
50589
55888
12573
122113
81269
12098
5356
98810
53110
85915
30888
12410
13902
67421
21123
62474
13153
8881
6255
43915
76308
66137
19211
79437
79787
60825
58788
630
20952
135949
4551
49083
70881
38497
11190
28347
37...

result:


Subtask #3:

score: 0
Wrong Answer

Test #15:

score: 0
Wrong Answer
time: 15ms
memory: 11912kb

input:

5000 5000
256 63 197 36 75 66 33 72 27 75 66 248 29 166 209 252 141 95 84 226 147 249 116 94 192 256 199 273 182 166 116 274 27 211 154 144 283 23 53 110 215 11 164 284 161 221 251 96 43 47 18 115 12 51 156 61 116 209 93 98 47 165 174 106 83 67 184 75 12 290 183 197 112 240 67 56 215 148 104 5 141 2...

output:

1352
2753
1778
2664
4866
5103
3022
1355
898
5179
7987
4965
954
940
822
7433
7831
5449
3896
3300
4571
1606
2591
40
922
305
4453
3970
3889
5860
4717
1691
443
1447
3697
5368
575
121
2087
7780
9315
2092
3184
3757
2947
427
738
4098
182
3302
1472
1634
7281
3071
6084
8260
1573
3883
369
4569
3366
1781
831
2...

result:

wrong answer 1st words differ - expected: '1322', found: '1352'

Subtask #4:

score: 0
Time Limit Exceeded

Test #23:

score: 0
Time Limit Exceeded

input:

1000000 1000000
1105 3246 1880 3554 818 2331 2576 4140 149 4562 3498 3536 3400 4788 4363 4742 1216 4218 4032 1701 1489 4889 1761 3022 3145 4945 3067 4304 5016 4624 1612 13 1335 3613 1086 2210 386 3464 1156 3352 4341 5006 3465 3900 622 654 1826 2983 1250 4164 3335 4308 2995 1982 1347 4335 2535 5054 4...

output:


result: