Task: | Kolikot |
Sender: | Nanohenry |
Submission time: | 2018-10-04 00:03:45 +0300 |
Language: | C++ |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | 1 | details |
#2 | WRONG ANSWER | 0.01 s | 1 | details |
#3 | WRONG ANSWER | 0.02 s | 1 | details |
#4 | WRONG ANSWER | 0.01 s | 1 | details |
#5 | WRONG ANSWER | 0.01 s | 1 | details |
#6 | WRONG ANSWER | 0.02 s | 1 | details |
#7 | WRONG ANSWER | 0.02 s | 1 | details |
#8 | WRONG ANSWER | 0.01 s | 1 | details |
#9 | WRONG ANSWER | 0.02 s | 1 | details |
#10 | WRONG ANSWER | 0.01 s | 1 | details |
#11 | WRONG ANSWER | 0.01 s | 2 | details |
#12 | WRONG ANSWER | 0.03 s | 2 | details |
#13 | WRONG ANSWER | 0.03 s | 2 | details |
#14 | WRONG ANSWER | 0.01 s | 2 | details |
#15 | WRONG ANSWER | 0.02 s | 2 | details |
#16 | WRONG ANSWER | 0.02 s | 2 | details |
#17 | WRONG ANSWER | 0.02 s | 2 | details |
#18 | WRONG ANSWER | 0.01 s | 2 | details |
#19 | WRONG ANSWER | 0.02 s | 2 | details |
#20 | WRONG ANSWER | 0.03 s | 2 | details |
#21 | WRONG ANSWER | 0.04 s | 3 | details |
#22 | WRONG ANSWER | 0.01 s | 3 | details |
#23 | WRONG ANSWER | 0.02 s | 3 | details |
#24 | WRONG ANSWER | 0.43 s | 3 | details |
#25 | TIME LIMIT EXCEEDED | -- | 3 | details |
#26 | RUNTIME ERROR | 0.12 s | 3 | details |
#27 | RUNTIME ERROR | 0.83 s | 3 | details |
#28 | TIME LIMIT EXCEEDED | -- | 3 | details |
#29 | TIME LIMIT EXCEEDED | -- | 3 | details |
#30 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
#include <iostream> #include <algorithm> using namespace std; long n, k, r, b, e, s = 2, c; bool d; uint64_t lut[15625]; unsigned long t[500001]; inline void insert(unsigned long i) { //cout << "inserting " << i << '\n'; lut[i / 64] |= 1 << (i % 64); } inline void remove(unsigned long i) { //cout << "removing " << i << '\n'; lut[i / 64] &= ~(1 << (i % 64)); } inline bool test(unsigned long i) { return lut[i / 64] & (1 << (i % 64)); } /*void vs() { for (long i = 0; i < n; i++) { if (i >= b && i <= e) { cout << t[i] << ' '; } else { cout << " "; } } cout << '\t'; for (long i = 0; i < 10; i++) { cout << test(i) << ' '; } cout << "\t" << "count is now " << c << '\n'; }*/ int main() { cin >> n >> k; for (long i = 0; i < n; i++) { cin >> t[i]; } r = n; if (n == 1) { cout << "1\n"; //system("pause"); return 0; } insert(t[0]); insert(t[1]); c = 1 + (t[0] != t[1]); while (1) { if (!d) { e++; if (!test(t[e])) { c++; insert(t[e]); } if (e - b >= s) { b++; if (find(&t[b], &t[e + 1], t[b - 1]) == &t[e + 1]) { c--; remove(t[b - 1]); } } if (e == n - 1) { d = 1; s++; if (s > n) { //vs(); if (c <= k) { r++; } break; } } } else { b--; if (!test(t[b])) { c++; insert(t[b]); } if (e - b >= s) { e--; if (find(&t[b], &t[e + 1], t[e + 1]) == &t[e + 1]) { c--; remove(t[e + 1]); } } if (b == 0) { d = 0; s++; if (s > n) { //vs(); if (c <= k) { r++; } break; } } } //vs(); if (c <= k) { r++; } } cout << r << '\n'; //system("pause"); }
Test details
Test 1
Group: 1
Verdict: WRONG ANSWER
input |
---|
1 |
correct output |
---|
1 1 |
user output |
---|
1 |
Test 2
Group: 1
Verdict: WRONG ANSWER
input |
---|
2 |
correct output |
---|
1 2 |
user output |
---|
2 |
Test 3
Group: 1
Verdict: WRONG ANSWER
input |
---|
3 |
correct output |
---|
2 1 2 |
user output |
---|
3 |
Test 4
Group: 1
Verdict: WRONG ANSWER
input |
---|
4 |
correct output |
---|
2 1 3 |
user output |
---|
4 |
Test 5
Group: 1
Verdict: WRONG ANSWER
input |
---|
5 |
correct output |
---|
2 1 4 |
user output |
---|
5 |
Test 6
Group: 1
Verdict: WRONG ANSWER
input |
---|
6 |
correct output |
---|
3 1 2 3 |
user output |
---|
6 |
Test 7
Group: 1
Verdict: WRONG ANSWER
input |
---|
7 |
correct output |
---|
3 1 2 4 |
user output |
---|
7 |
Test 8
Group: 1
Verdict: WRONG ANSWER
input |
---|
8 |
correct output |
---|
3 1 2 5 |
user output |
---|
8 |
Test 9
Group: 1
Verdict: WRONG ANSWER
input |
---|
9 |
correct output |
---|
3 1 2 6 |
user output |
---|
9 |
Test 10
Group: 1
Verdict: WRONG ANSWER
input |
---|
10 |
correct output |
---|
4 1 2 3 4 |
user output |
---|
10 |
Test 11
Group: 2
Verdict: WRONG ANSWER
input |
---|
11 |
correct output |
---|
4 1 2 3 5 |
user output |
---|
11 |
Test 12
Group: 2
Verdict: WRONG ANSWER
input |
---|
54 |
correct output |
---|
9 1 2 3 4 5 6 7 8 18 |
user output |
---|
54 |
Test 13
Group: 2
Verdict: WRONG ANSWER
input |
---|
55 |
correct output |
---|
10 1 2 3 4 5 6 7 8 9 10 |
user output |
---|
55 |
Test 14
Group: 2
Verdict: WRONG ANSWER
input |
---|
56 |
correct output |
---|
10 1 2 3 4 5 6 7 8 9 11 |
user output |
---|
56 |
Test 15
Group: 2
Verdict: WRONG ANSWER
input |
---|
123 |
correct output |
---|
15 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
123 |
Test 16
Group: 2
Verdict: WRONG ANSWER
input |
---|
819 |
correct output |
---|
39 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
819 |
Test 17
Group: 2
Verdict: WRONG ANSWER
input |
---|
820 |
correct output |
---|
40 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
820 |
Test 18
Group: 2
Verdict: WRONG ANSWER
input |
---|
821 |
correct output |
---|
40 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
821 |
Test 19
Group: 2
Verdict: WRONG ANSWER
input |
---|
999 |
correct output |
---|
44 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
999 |
Test 20
Group: 2
Verdict: WRONG ANSWER
input |
---|
1000 |
correct output |
---|
44 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
1000 |
Test 21
Group: 3
Verdict: WRONG ANSWER
input |
---|
1274 |
correct output |
---|
49 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
1274 |
Test 22
Group: 3
Verdict: WRONG ANSWER
input |
---|
1275 |
correct output |
---|
50 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
1275 |
Test 23
Group: 3
Verdict: WRONG ANSWER
input |
---|
1276 |
correct output |
---|
50 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
1276 |
Test 24
Group: 3
Verdict: WRONG ANSWER
input |
---|
12345 |
correct output |
---|
156 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
12345 |
Test 25
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
123456 |
correct output |
---|
496 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
(empty) |
Test 26
Group: 3
Verdict: RUNTIME ERROR
input |
---|
10000000 |
correct output |
---|
4471 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
(empty) |
Test 27
Group: 3
Verdict: RUNTIME ERROR
input |
---|
100000000 |
correct output |
---|
14141 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
(empty) |
Test 28
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000000 |
correct output |
---|
31622 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
(empty) |
Test 29
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
999999999 |
correct output |
---|
44720 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
(empty) |
Test 30
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000000000 |
correct output |
---|
44720 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
user output |
---|
(empty) |