QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#719722 | #9606. PM 大师 | hos_lyric# | 40 | 1971ms | 166560kb | C++14 | 7.3kb | 2024-11-07 08:27:13 | 2024-11-07 08:27:15 |
Judging History
answer
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
using Int = long long;
template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")
template <class T> void bAdd(vector<T> &bit, int pos, const T &val) {
const int bitN = bit.size();
for (int x = pos; x < bitN; x |= x + 1) bit[x] += val;
}
template <class T> T bSum(const vector<T> &bit, int pos) {
T ret = 0;
for (int x = pos; x > 0; x &= x - 1) ret += bit[x - 1];
return ret;
}
template <class T> T bSum(const vector<T> &bit, int pos0, int pos1) {
return bSum(bit, pos1) - bSum(bit, pos0);
}
// min pos s.t. pred(sum of [0, pos))
// assume pred(sum of [0, pos)) is non-decreasing
template <class T, class Pred>
int bBinarySearch(const vector<T> &bit, Pred pred) {
if (pred(T(0))) return 0;
const int bitLen = bit.size();
int pos = 0;
T sum = 0;
for (int e = 31 - __builtin_clz(bitLen); e >= 0; --e) {
const int x = (pos | 1 << e) - 1;
if (x < bitLen && !pred(sum + bit[x])) {
pos |= 1 << e;
sum += bit[x];
}
}
return pos + 1;
}
struct Set {
// max{ceil(log_64(n)), 1}
int log64N, n;
vector<unsigned long long> a[6];
explicit Set(int n_ = 0) : n(n_) {
assert(n >= 0);
int m = n ? n : 1;
for (int d = 0; ; ++d) {
m = (m + 63) >> 6;
a[d].assign(m, 0);
if (m == 1) {
log64N = d + 1;
break;
}
}
}
bool empty() const {
return !a[log64N - 1][0];
}
bool contains(int x) const {
return (a[0][x >> 6] >> (x & 63)) & 1;
}
void insert(int x) {
for (int d = 0; d < log64N; ++d) {
const int q = x >> 6, r = x & 63;
a[d][q] |= 1ULL << r;
x = q;
}
}
void erase(int x) {
for (int d = 0; d < log64N; ++d) {
const int q = x >> 6, r = x & 63;
if ((a[d][q] &= ~(1ULL << r))) break;
x = q;
}
}
// max s.t. <= x (or -1)
int prev(int x) const {
if (x > n - 1) x = n - 1;
for (int d = 0; d <= log64N; ++d) {
if (x < 0) break;
const int q = x >> 6, r = x & 63;
const unsigned long long lower = a[d][q] << (63 - r);
if (lower) {
x -= __builtin_clzll(lower);
for (int e = d; --e >= 0; ) x = x << 6 | (63 - __builtin_clzll(a[e][x]));
return x;
}
x = q - 1;
}
return -1;
}
// min s.t. >= x (or n)
int next(int x) const {
if (x < 0) x = 0;
for (int d = 0; d < log64N; ++d) {
const int q = x >> 6, r = x & 63;
if (static_cast<unsigned>(q) >= a[d].size()) break;
const unsigned long long upper = a[d][q] >> r;
if (upper) {
x += __builtin_ctzll(upper);
for (int e = d; --e >= 0; ) x = x << 6 | __builtin_ctzll(a[e][x]);
return x;
}
x = q + 1;
}
return n;
}
};
int N, Q;
vector<int> A;
vector<int> X, K, Y;
namespace brute {
vector<int> run() {
cerr<<"[brute::run]"<<endl;
auto as = A;
vector<int> bs(N);
vector<int> app(N + 1, -1);
vector<int> ans(Q, -1);
for (int q = 0; q < Q; ++q) {
as[X[q]] = K[q];
int mex = 0;
for (int i = 0; i < N; ++i) {
if (as[i] == -1) {
for (; app[mex] == q; ++mex) {}
bs[i] = mex;
} else {
bs[i] = as[i];
}
if (bs[i] >= 0) {
app[bs[i]] = q;
}
}
ans[q] = bs[Y[q]];
}
return ans;
}
} // brute
namespace sub2 {
vector<int> run() {
cerr<<"[sub2::run]"<<endl;
int I0;
for (I0 = 0; I0 < N && A[I0] == -2; ++I0) {}
vector<int> bit(N + 1, 0);
for (int b = 0; b <= N; ++b) bAdd(bit, b, +1);
auto as = A;
vector<int> freq(N + 1, 0);
vector<int> ans(Q, -1);
for (int q = 0; q < Q; ++q) {
{
int &a = as[X[q]];
if (a >= 0) if (!--freq[a]) bAdd(bit, a, +1);
a = K[q];
if (a >= 0) if (!freq[a]++) bAdd(bit, a, -1);
}
if (Y[q] < I0) {
ans[q] = as[Y[q]];
} else {
ans[q] = bBinarySearch(bit, [&](int sum) -> bool {
return (sum > Y[q] - I0);
}) - 1;
}
}
return ans;
}
} // sub2
namespace sub3 {
vector<int> run() {
cerr<<"[sub3::run]"<<endl;
vector<int> is;
vector<int> si(N, -1);
for (int i = 0; i < N; ++i) if (A[i] == -1) {
si[i] = is.size();
is.push_back(i);
}
const int len = min((int)is.size(), 105);
vector<Set> exs(len, Set(N + 1));
for (int j = 0; j < len; ++j) {
for (int b = 0; b <= N; ++b) exs[j].insert(b);
}
vector<set<int>> apps(N + 1);
for (int b = 0; b <= N; ++b) apps[b].insert(N);
auto as = A;
vector<int> ans(Q, -1);
for (int q = 0; q < Q; ++q) {
{
int &a = as[X[q]];
if (a >= 0) {
apps[a].erase(X[q]);
for (int j = 0; j < len; ++j) if (X[q] < is[j] && is[j] < *apps[a].begin()) exs[j].insert(a);
}
a = K[q];
if (a >= 0) {
for (int j = 0; j < len; ++j) if (X[q] < is[j] && is[j] < *apps[a].begin()) exs[j].erase(a);
apps[a].insert(X[q]);
}
}
{
const int jY = si[Y[q]];
if (~jY) {
int b = 0;
for (int j = 0; j < len; ++j) {
b = exs[j].next(b);
if (jY == j) {
ans[q] = b;
break;
}
++b;
}
if (jY >= len) {
ans[q] = b + (jY - len);
}
} else {
ans[q] = as[Y[q]];
}
}
}
return ans;
}
} // sub3
int main() {
for (; ~scanf("%d%d", &N, &Q); ) {
A.resize(N);
for (int i = 0; i < N; ++i) {
scanf("%d", &A[i]);
--A[i];
}
X.resize(Q);
K.resize(Q);
Y.resize(Q);
for (int q = 0; q < Q; ++q) {
scanf("%d%d%d", &X[q], &K[q], &Y[q]);
--X[q];
--K[q];
--Y[q];
}
bool spe2 = true;
for (int i = 0; i < N - 1; ++i) spe2 = spe2 && (A[i] <= A[i + 1]);
const bool spe3 = (*max_element(K.begin(), K.end()) < 100);
const bool spe4 = (count(A.begin(), A.end(), -1) <= 100);
vector<int> ans;
if (spe2) {
ans = sub2::run();
} else if (spe3 || spe4) {
ans = sub3::run();
} else {
ans = brute::run();
}
for (int q = 0; q < Q; ++q) {
printf("%d\n", ans[q] + 1);
}
}
return 0;
}
詳細信息
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 0ms
memory: 3780kb
input:
10 10 0 -1 0 0 -1 0 -1 -1 0 -1 7 5 9 7 5 1 10 8 4 7 10 1 8 -1 3 10 6 4 2 2 1 2 9 6 5 8 4 7 -1 9
output:
6 1 3 1 2 3 1 4 3 5
result:
ok 10 lines
Test #2:
score: 10
Accepted
time: 411ms
memory: 4076kb
input:
10000 10000 -1 0 -1 -1 -1 0 -1 0 -1 0 -1 0 0 -1 -1 0 0 -1 0 -1 -1 -1 0 0 -1 -1 0 -1 -1 -1 0 0 0 -1 0 -1 -1 -1 -1 0 -1 -1 0 -1 -1 0 -1 -1 0 0 -1 0 0 0 -1 -1 -1 -1 0 0 0 0 -1 0 -1 -1 0 -1 -1 -1 0 0 -1 0 0 -1 -1 0 0 -1 -1 -1 -1 0 0 0 -1 0 -1 0 0 0 0 -1 0 0 -1 -1 0 -1 -1 -1 0 -1 0 -1 0 0 -1 -1 0 -1 -1 0...
output:
37 1767 2083 1505 2208 3174 1012 3136 4044 2661 802 4772 931 2188 605 732 1473 1221 4070 706 3786 464 300 2857 4852 3026 2965 2102 4096 4859 1841 60 2465 645 4312 2002 4168 3292 2854 2043 194 4748 3298 1687 916 4465 1101 4649 4552 598 3717 3883 2111 1911 2502 2265 2737 2193 4200 3607 4086 3908 2529 ...
result:
ok 10000 lines
Test #3:
score: 10
Accepted
time: 133ms
memory: 4148kb
input:
10000 10000 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 ...
output:
6984 1876 1755 3945 3988 8817 1301 9211 6838 70 2044 5300 4026 6870 1879 7611 2604 5187 8292 1796 5087 2635 2369 8040 5721 6993 5554 966 5743 4301 8644 4755 2400 4647 6158 6998 2597 7698 8252 6522 8528 8153 3332 2833 4289 3081 9022 6921 6121 1549 2801 958 9507 2148 7998 4954 8624 7643 22 4162 5666 8...
result:
ok 10000 lines
Test #4:
score: 10
Accepted
time: 139ms
memory: 4320kb
input:
10000 10000 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 ...
output:
549 7364 7058 4716 4807 6918 163 2855 4219 8220 1848 2315 1228 6516 1570 7755 728 911 2810 2028 3977 6371 8418 788 2040 7159 7360 3776 8573 8326 3057 3814 3587 4894 2018 5314 812 5691 5689 7967 4493 7806 1966 5618 6862 3303 1947 6878 7511 6879 5418 5836 8916 5951 4960 1424 1290 4315 873 3208 1774 73...
result:
ok 10000 lines
Test #5:
score: 10
Accepted
time: 201ms
memory: 4068kb
input:
10000 10000 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 -1 -1 -1 -1 0 0 0 0 0 -1 -1 0 0 0 -1 0 0 0 0 -1 0 0 -1 0 0 0 -1 -1 0 -1 -1 0 -1 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 -1 0 -1 0 0 -1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 -1 0 -1 -1 0 0 0 ...
output:
3638 2094 6615 88 2643 3081 3993 7204 6569 1008 7035 4008 6846 2407 2888 6884 5588 340 3145 3234 3779 2608 6289 1428 2477 3411 161 2203 2128 5677 1759 2106 6596 313 7461 5011 1208 3021 7029 3452 4582 6173 479 4360 224 3681 5249 2351 569 1369 5212 5572 3429 7152 6636 6318 6928 6644 6678 5661 4229 185...
result:
ok 10000 lines
Test #6:
score: 10
Accepted
time: 279ms
memory: 4344kb
input:
10000 10000 -1 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 0 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 0 -1 -1 0 -1 -1 0 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 -1 0 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 0 -1 -1 -1 0 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 0 0 -1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 ...
output:
2420 325 2194 1102 1154 1391 12 1517 1948 1801 593 441 975 1902 1078 184 226 587 52 2361 1584 2137 2255 190 1904 193 636 62 1915 1028 1751 612 330 659 1700 1672 1073 756 202 425 766 522 1844 2295 744 37 865 2367 32 1066 948 1026 1162 812 625 1512 161 1394 2372 429 1232 1155 1295 998 1941 1632 1151 1...
result:
ok 10000 lines
Test #7:
score: 10
Accepted
time: 222ms
memory: 4156kb
input:
10000 10000 -1 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0...
output:
219 484 774 725 570 54 54 931 240 552 787 897 322 15 756 440 675 152 337 275 408 856 622 562 494 3 890 858 849 460 141 187 119 271 441 426 550 804 308 823 398 918 244 522 213 785 84 429 428 500 619 179 808 173 853 1011 955 46 375 520 704 416 955 800 661 899 953 533 319 87 1011 172 254 810 842 879 59...
result:
ok 10000 lines
Test #8:
score: 10
Accepted
time: 206ms
memory: 4068kb
input:
10000 10000 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
236 370 232 128 262 311 250 336 164 107 97 183 354 3 346 307 282 350 99 214 350 489 170 373 130 81 221 200 184 275 451 67 60 70 41 472 153 479 288 228 212 332 68 76 338 114 242 116 207 22 234 204 451 213 258 159 34 193 259 122 448 105 131 177 474 490 439 405 170 322 380 360 425 33 414 302 191 161 33...
result:
ok 10000 lines
Subtask #2:
score: 10
Accepted
Test #9:
score: 10
Accepted
time: 469ms
memory: 34364kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
459886 53317 492356 423943 292374 39197 57078 411846 146532 49283 12402 316482 109785 61994 283770 156543 483178 281298 130833 46233 335000 428931 210801 24959 71722 361514 117444 218823 54814 378720 81973 194272 135873 484070 293734 303811 349950 344506 479375 229463 8421 114254 237253 295732 15835...
result:
ok 1000000 lines
Test #10:
score: 10
Accepted
time: 507ms
memory: 34628kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
231864 158988 610606 558023 74606 42402 245012 525664 260911 510218 257983 146399 83879 681860 375125 59670 894882 210723 509929 9256 413137 839173 549143 526070 729809 423388 596082 184674 660967 119639 742727 901832 938252 900078 190461 920677 441621 942117 188500 185870 522884 40015 9817 716146 7...
result:
ok 1000000 lines
Test #11:
score: 10
Accepted
time: 497ms
memory: 34408kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
36874 472618 842917 114716 491408 773508 452063 603860 728342 748513 475705 258696 486435 316427 736929 378854 238269 110066 1161 156017 484791 539880 789570 421405 27960 173470 21339 774513 531030 728993 156647 533307 212440 258827 731424 220524 712655 444910 546596 745273 497179 341745 676112 5092...
result:
ok 1000000 lines
Test #12:
score: 10
Accepted
time: 492ms
memory: 34560kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
668119 431443 15455 296704 240224 645285 127520 95201 89016 184805 731059 712630 396434 292253 553741 212645 355171 214190 127817 191153 701410 89507 340566 287015 187296 35719 746439 375147 88190 102370 390425 435125 502654 399775 608758 98602 171926 271902 511567 384122 726564 28359 4230 471734 12...
result:
ok 1000000 lines
Test #13:
score: 10
Accepted
time: 412ms
memory: 34552kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
122105 239109 25040 14694 216977 99003 181576 195235 117059 231141 152732 140117 42783 77977 226878 131724 129445 6315 84475 200684 240468 74983 112696 224812 7559 33824 18998 187 133123 151253 107837 158008 132668 13180 180187 124564 177382 102508 128808 131293 88975 157536 238149 98474 128162 9293...
result:
ok 1000000 lines
Test #14:
score: 10
Accepted
time: 380ms
memory: 34408kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
47044 6150 94661 59151 4729 2518 23567 71693 42072 50518 22840 39707 35445 82412 27250 50855 39799 64638 21397 39142 82263 66705 54956 24413 54915 20050 12379 30158 7056 56960 48528 81919 34586 47114 79033 79833 35677 74173 90352 31325 75842 4392 42035 27995 87130 20590 19983 78934 8490 46331 18425 ...
result:
ok 1000000 lines
Test #15:
score: 10
Accepted
time: 379ms
memory: 34428kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
41828 48247 26228 2049 8832 16507 32126 45098 16614 23119 34270 34422 36737 30148 40987 19693 38932 49063 35507 26936 34825 4751 48640 8128 29266 16813 36942 31358 20695 21688 15879 16628 42878 6807 40994 38198 1395 11655 10644 35127 2309 23706 2631 15256 28080 47633 38700 24115 9522 27033 46263 538...
result:
ok 1000000 lines
Subtask #3:
score: 10
Accepted
Test #16:
score: 10
Accepted
time: 1971ms
memory: 159540kb
input:
1000000 1000000 0 -1 -1 0 -1 -1 0 -1 0 -1 0 0 0 0 -1 -1 -1 0 -1 0 -1 0 -1 -1 0 -1 -1 -1 0 -1 -1 -1 0 -1 0 0 0 -1 -1 -1 -1 0 -1 -1 0 0 -1 -1 0 -1 -1 -1 0 -1 0 -1 0 0 -1 0 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 -1 0 0 0 -1 -1 -1 0 0 0 -1 0 0 0 -1 -1 0 0 0 0 -1 -1 0 0 0 0 -1 0 -1 0 0 0...
output:
419426 372348 476911 34348 150780 460622 223328 283198 443164 347044 103688 492126 361590 20471 24004 315761 428482 18708 420730 182298 498955 177266 56353 462764 158257 244933 422040 484780 403241 187513 20639 466402 267820 384702 293959 84073 125864 363325 86066 479275 368199 195169 20943 82210 29...
result:
ok 1000000 lines
Test #17:
score: 10
Accepted
time: 1668ms
memory: 143484kb
input:
1000000 1000000 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
output:
877817 169670 503865 868941 757832 762592 267527 132121 530021 515297 594043 369906 279274 769900 279993 925891 867298 65017 327392 534338 454981 371962 773139 594668 861490 297472 691830 240392 6931 837802 329267 717727 622016 302076 867101 808473 234174 156539 246761 217031 706530 892460 804744 36...
result:
ok 1000000 lines
Test #18:
score: 10
Accepted
time: 1762ms
memory: 146104kb
input:
1000000 1000000 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -...
output:
76964 254688 647867 132442 555987 772576 148660 189913 890249 469690 650795 527444 823200 239204 536286 369356 374355 316809 102958 181712 133162 278773 624648 23406 191762 690329 48553 204392 70394 472228 352467 863376 689494 255188 762658 128967 848134 101255 825979 353786 758958 597186 80265 8005...
result:
ok 1000000 lines
Test #19:
score: 10
Accepted
time: 1844ms
memory: 151836kb
input:
1000000 1000000 0 0 -1 0 0 0 0 0 -1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 -1 0 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 -1 0 0 0 0 -1 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 -1 -1 -1 ...
output:
301362 124661 594574 157761 452519 202544 349211 125801 300630 652855 79737 245694 343621 402370 220223 476997 106123 58847 28413 436012 281469 582215 577107 244922 278352 280065 748256 673531 10514 243821 418778 355056 186471 292616 428202 270231 545683 441274 487468 96171 653364 293158 395100 6348...
result:
ok 1000000 lines
Test #20:
score: 10
Accepted
time: 1927ms
memory: 164164kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 -1 -1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 0 -1 0 -1 0 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 0 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 0 -1 -1 -1 -1 -1 0 0 0 0 -1 0 -1 -1 -1 0 0 0 0 -1 -1 0 0 0 -1 -1 -1 -1 -1 -1 ...
output:
17462 58557 246658 26828 228805 46664 5019 174233 104683 211580 60036 225402 181205 52446 98450 212982 193185 179563 194752 23834 194419 83859 193437 130118 156179 245458 17678 50207 160851 30676 225732 67445 220034 72349 22635 6223 123948 109346 105038 193636 113546 110188 66568 124787 140476 40757...
result:
ok 1000000 lines
Test #21:
score: 10
Accepted
time: 1882ms
memory: 166124kb
input:
1000000 1000000 0 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 -1 0 -1 -1 0 -1 0 -1 0 -1 -1 -1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -...
output:
39803 29623 63234 76116 87461 45159 12590 58765 7365 60656 1333 827 21466 7412 20037 21268 71878 14866 48131 59337 29187 66884 2578 94083 10058 23669 70154 29562 64147 74928 9714 61444 43695 25505 44102 89065 53943 61516 9907 29901 92226 17249 21627 45499 75849 54272 22009 10210 41368 99653 17547 43...
result:
ok 1000000 lines
Test #22:
score: 10
Accepted
time: 1916ms
memory: 166560kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
41794 11248 19370 9521 15603 231 33587 39333 33779 21719 13484 35524 29843 20241 10670 33496 23214 33568 43776 30681 495 8566 17874 35327 13257 40753 26163 17324 12968 7409 24322 17057 13897 48782 29846 19715 49649 38079 16190 42374 43535 7308 22123 7177 8266 28008 40105 12128 14380 45158 48919 3273...
result:
ok 1000000 lines
Subtask #4:
score: 10
Accepted
Test #23:
score: 10
Accepted
time: 1693ms
memory: 166280kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
99 15 51 89 58 47 81 4 40 58 14 26 26 2 62 3 28 51 13 23 91 62 25 6 56 7 25 56 87 8 66 40 56 50 75 68 70 51 54 64 79 22 59 53 45 5 13 34 44 67 18 48 7 13 63 84 50 45 48 42 47 47 4 89 35 22 59 55 5 69 14 61 84 91 51 55 92 28 31 68 17 58 50 81 61 58 54 91 34 12 26 80 50 21 6 7 43 11 73 70 1 49 35 42 1...
result:
ok 1000000 lines
Test #24:
score: 10
Accepted
time: 1692ms
memory: 166324kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
80 76 92 88 88 24 88 70 71 23 40 93 52 46 63 41 50 44 60 37 40 29 32 38 17 29 86 53 37 9 39 50 39 57 95 2 66 5 34 81 47 53 19 82 61 2 9 86 57 85 66 73 71 84 3 60 34 75 80 56 58 87 68 94 2 68 14 80 52 97 16 41 97 64 35 84 83 26 46 24 88 26 30 92 56 38 88 95 5 18 100 19 42 8 56 24 44 69 99 16 50 71 10...
result:
ok 1000000 lines
Test #25:
score: 10
Accepted
time: 1718ms
memory: 166432kb
input:
1000000 1000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
output:
31 56 68 1 88 75 26 48 60 62 24 63 5 51 24 29 30 72 15 73 50 87 82 11 55 56 84 37 57 87 22 75 93 86 58 28 25 21 90 97 66 11 49 65 8 37 100 93 77 90 47 5 21 18 20 100 42 28 88 99 34 34 66 96 9 50 56 13 76 95 31 70 16 90 95 25 44 97 77 100 48 7 23 88 76 48 43 22 92 71 49 6 81 51 16 5 29 32 44 93 42 24...
result:
ok 1000000 lines
Subtask #5:
score: 0
Time Limit Exceeded
Test #26:
score: 0
Time Limit Exceeded
input:
1000000 499990 -1 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 -1 0 0 0 -1 0 -1 -1 0 0 0 0 -1 -1 0 -1 -1 -1 0 -1 0 -1 0 -1 0 0 0 0 -1 0 -1 0 0 0 0 0 -1 0 -1 -1 -1 0 -1 -1 0 0 0 0 -1 -1 -1 0 0 0 -1 -1 0 0 -1 0 -1 -1 0 -1 -1 -1 0 0 0 -1 0 0 0 0 -1 0 0 -1 -1 0 -1 0 0 -1 -1 0 0 -1 0 0 0 -1 -1 -1 -1 0 -1 0 -1 -1 -1 0...
output:
result:
Subtask #6:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Dependency #4:
100%
Accepted
Dependency #5:
0%