Submission #161353

# Submission time Handle Problem Language Result Execution time Memory
161353 2019-11-01T21:35:04 Z pink_bittern Segments (IZhO18_segments) C++14
100 / 100
4826 ms 17872 KB
#include <bits/stdc++.h>
#define pb push_back
#define pll pair <ll, ll>
#define MOMI using namespace std;
#define mp make_pair
#define pyshnapyshnakaa ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
#pragma optimize("TKACHENKO-GORYACHENKO")
#pragma GCC optimize("O3")
// #pragma GCC optimize("Ofast")
// #pragma GCC optimize("unroll-loops")
 
typedef int ll;
 
typedef long double ld;
 
using namespace std;
 
const ll inf = 2e9 + 500;
const ll maxn = 2e5;
const ll block = 300;
const ll block_sz = (maxn + block - 1) / block;
 
ll n, m, k, t;
 
struct seg{
	ll l;
	ll r;
	inline ll sz() const {
		return r - l + 1;
	}
	ll i;
};
 
seg S[maxn];

ll ssz = 0;

vector <ll> lasts;
 
inline bool cmpl(const ll& a, const ll& b) {
	return S[a].l < S[b].l;
}
 
inline bool cmpr(const ll& a, const ll& b) {
	return S[a].r < S[b].r;
}
 
inline bool cmpsz(const ll& a, const ll& b) {
	return S[a].sz() < S[b].sz();
}
 
vector <ll> segsl;
vector <ll> segsr;
 
vector <ll> R[block];
 
vector <ll> L[block];
 
ll MNL[block];
ll MXL[block];
ll MNR[block];
ll MXR[block];
 
ll IL[maxn];
ll IR[maxn];
 
bool used[maxn];
 
inline void buildL(ll q) {
	ll w;
	sort(L[q].begin(), L[q].end(), cmpsz);
	MNL[q] = inf;
	MXL[q] = -inf;
	for (w = 0; w < L[q].size(); w++) {
		MNL[q] = min(MNL[q], S[L[q][w]].l);
		MXL[q] = max(MXL[q], S[L[q][w]].l);
	}
}
 
inline void buildR(ll q) {
	ll w;
 	MNR[q] = inf;
	MXR[q] = -inf;
	sort(R[q].begin(), R[q].end(), cmpsz);
	for (w = 0; w < R[q].size(); w++) {
		MNR[q] = min(MNR[q], S[R[q][w]].r);
		MXR[q] = max(MXR[q], S[R[q][w]].r);
	}
}

inline void mrgl() {
	ll i, j;
	vector <ll> ANS;
	while (i != segsl.size() && j != lasts.size()) {
		if (cmpl(segsl[i], lasts[j])) {
			ANS.pb(segsl[i]);
			i++;
		}
		else {
			ANS.pb(lasts[j]);
			j++;
		}
	}
	for (; i < segsl.size(); i++) {
		ANS.pb(segsl[i]);
	}
	for (; j < lasts.size(); j++) {
		ANS.pb(lasts[j]);
	}
	segsl = ANS;
}

inline void mrgr() {
	ll i, j;
	vector <ll> ANS;
	while (i != segsr.size() && j != lasts.size()) {
		if (cmpr(segsr[i], lasts[j])) {
			ANS.pb(segsr[i]);
			i++;
		}
		else {
			ANS.pb(lasts[j]);
			j++;
		}
	}
	for (; i < segsr.size(); i++) {
		ANS.pb(segsr[i]);
	}
	for (; j < lasts.size(); j++) {
		ANS.pb(lasts[j]);
	}
	segsr = ANS;
}
 
inline void rebuild() { 
	ll q, w;
	ll blocki = 0;
	for (q = 0; q < block; q++) {
		R[q].clear();
		L[q].clear();
	}
	sort(lasts.begin(), lasts.end(), cmpl);
	mrgl();
	// sort(segs.begin(), segs.end(), cmpl);
	for (auto p : segsl) {
		IL[p] = -1;
		if (used[p]) {
			continue;
		}
		if (L[blocki].size() > block_sz) {
			blocki++;
		}
		IL[p] = blocki;
		L[blocki].pb(p);
	}
	sort(lasts.begin(), lasts.end(), cmpr);
	mrgr();
	lasts.clear();
	blocki = 0;
	// sort(segs.begin(), segs.end(), cmpr);
	for (auto p: segsr) {
		IR[p] = -1;
		if (used[p]) {
			continue;
		}
		if (R[blocki].size() > block_sz) {
			blocki++;
		}
		IR[p] = blocki;
		R[blocki].pb(p);
	}
	for (q = 0; q < block; q++) {
		buildL(q);
	}
	for (q = 0; q < block; q++) {
		buildR(q);
	}
}
 
inline void add(seg a) {
	lasts.pb(a.i);
	// S.pb(a);
	S[ssz] = a;
	ssz++;
	// segs.push_back(a.i);
	IL[a.i] = IR[a.i] = -1;
}
 
inline void del(seg b) { 
	ll il = IL[b.i], ir = IR[b.i];
	used[b.i] = 1;
	if (il == -1) {
		return;
	}
	L[il].erase(find(L[il].begin(), L[il].end(), b.i));
	R[ir].erase(find(R[ir].begin(), R[ir].end(), b.i));
	buildL(il);
	buildR(ir);
}
 
inline ll slowL(ll i, ll x, ll l) {
	ll q;
	ll ans = 0;
	for (q = 0; q < L[i].size(); q++) {
		if (S[L[i][q]].l >= l && S[L[i][q]].sz() >= x) {
			ans++;
		}
	}
	return ans;
}
 
inline ll slowR(ll i, ll x, ll r) {
	ll q;
	ll ans = 0;
	for (q = 0; q < R[i].size(); q++) {
		if (S[R[i][q]].r <= r && S[R[i][q]].sz() >= x) {
			ans++;
		}
	}
	return ans;
}

inline ll bpl(ll i, ll x) {
	ll l = -1, r = L[i].size(), M;
	while (r - l > 1) {
		M = (l + r) / 2;
		if (S[L[i][M]].sz() >= x) {
			r = M;
		}
		else {
			l = M;
		}
	}
	return r;
}

inline ll bpr(ll i, ll x) {
	ll l = -1, r = R[i].size(), M;
	while (r - l > 1) {
		M = (l + r) / 2;
		if (S[R[i][M]].sz() >= x) {
			r = M;
		}
		else {
			l = M;
		}
	}
	return r;
}
 
inline ll fastL(ll i, ll x) {
	if (L[i].empty()) {
		return 0;
	}
	seg good;
	good.l = 0; good.r = x - 1; 
	S[ssz] = good;
	ll j = (lower_bound(L[i].begin(), L[i].end(), ssz, cmpsz) - L[i].begin());
	// S.pop_back();
	return L[i].size() - j;
}
 
inline ll fastR(ll i, ll x) {
	if (R[i].empty()) {
		return 0;
	}
	seg good;
	good.l = 0; good.r = x - 1;
	S[ssz] = good;
	ll j = (lower_bound(R[i].begin(), R[i].end(), ssz, cmpsz) - R[i].begin());
	// S.pop_back();
	return R[i].size() - j;
}
 
inline ll getansL(ll x, ll l) {
	ll q;
	ll ans = 0;
	for (q = 0; q < block; q++) {
		if (MNL[q] == inf) {
			continue;
		}
		if (MNL[q] >= l) {
			ans += fastL(q, x);
			continue;
		}
		if (MXL[q] < l) {
			continue;
		}
		ans += slowL(q, x, l);
	}
 
	for (q = 0; q < lasts.size(); q++) {
		if (used[lasts[q]]) {
			continue;
		}
		if (S[lasts[q]].l >= l && S[lasts[q]].sz() >= x) {
			ans++;
		}
	}
	return ans;
}
 
inline ll getansR(ll x, ll r) {
	ll q;
	ll ans = 0;
	ll cnt = 0;
	for (q = 0; q < block; q++) {
		if (MNR[q] == inf) {
			continue;
		}
		// if (q > 1) {
		// 	if (MXR[q - 1] > MNR[q]) {
		// 		exit(-1);
		// 	}
		// }
		if (MXR[q] <= r) {
			ll dans = fastR(q, x);
			ans += dans;
			continue;
		}
		if (MNR[q] > r) {
			continue;
		}
		/// MXR[q] > r && MNR[q] <= r, 
		ll dans = slowR(q, x, r);
		ans += dans;
		cnt++;
	}
	// if (cnt > 5) {
	// 	exit(-1);
	// }
	for (q = 0; q < lasts.size(); q++) {
		if (used[lasts[q]]) {
			continue;
		}
		if (S[lasts[q]].r <= r && S[lasts[q]].sz() >= x) {
			ans++;
		}
	}
	return ans;
}
 
inline ll answer(seg c, ll k) {
	if (c.sz() < k) {
		return 0;
	}
	ll q, w;
	ll ans = 0;
	ll lk = c.r - k + 2, rk = c.l + k - 2;
	ll allans = getansR(k, inf);
	ll dansl = getansL(k, lk);
	ll dansr = getansR(k, rk);
	ans = allans - dansr - dansl;
	return ans;
}
 
signed main() {
	ll q, w, e, a, b, c;
	pyshnapyshnakaa;
	cin >> n >> t;
	// cout << block_sz * block << endl;
	ll nxt = 0;
	ll lastans = 0;
	// ll cnt3 = 0;
	// segsl.reserve(n);
	// segsr.reserve(n);
	// S.reserve(n);
	for (q = 0; q < block; q++) {
		L[q].reserve(block_sz);
		R[q].reserve(block_sz);
	}
	for (q = 0; q < n; q++) {
		ll comm;
		cin >> comm;
		ll l, r;
		seg x;
		if (comm == 1) {
			cin >> l >> r;
			l ^= (lastans * t);
			r ^= (lastans * t);
			if (l > r) {
				swap(l, r);
			}
			x.l = l; x.r = r;
			x.i = ssz;
			add(x);
		}
		if (comm == 2) {
			cin >> a;
			a--;
			del(S[a]);
		}
		// if (cnt3 > 8e4 && n > 1e5) {
		// 	exit(-1);
		// }
		if (comm == 3) {
			// cnt3++;
			cin >> l >> r;
			l ^= (lastans * t);
			r ^= (lastans * t);
			if (lasts.size() >= block_sz * 2) {
				rebuild();
			}
			if (l > r) {
				swap(l, r);
			} 
			x.l = l; x.r = r;
			cin >> c;
			lastans = answer(x, c);
			cout << lastans << '\n';
		}
	}
	return 0;
}

Compilation message

segments.cpp:7:0: warning: ignoring #pragma optimize  [-Wunknown-pragmas]
 #pragma optimize("TKACHENKO-GORYACHENKO")
 
segments.cpp: In function 'void buildL(ll)':
segments.cpp:74:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (w = 0; w < L[q].size(); w++) {
              ~~^~~~~~~~~~~~~
segments.cpp: In function 'void buildR(ll)':
segments.cpp:85:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (w = 0; w < R[q].size(); w++) {
              ~~^~~~~~~~~~~~~
segments.cpp: In function 'void mrgl()':
segments.cpp:94:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (i != segsl.size() && j != lasts.size()) {
         ~~^~~~~~~~~~~~~~~
segments.cpp:94:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (i != segsl.size() && j != lasts.size()) {
                              ~~^~~~~~~~~~~~~~~
segments.cpp:104:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (; i < segsl.size(); i++) {
         ~~^~~~~~~~~~~~~~
segments.cpp:107:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (; j < lasts.size(); j++) {
         ~~^~~~~~~~~~~~~~
segments.cpp: In function 'void mrgr()':
segments.cpp:116:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (i != segsr.size() && j != lasts.size()) {
         ~~^~~~~~~~~~~~~~~
segments.cpp:116:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (i != segsr.size() && j != lasts.size()) {
                              ~~^~~~~~~~~~~~~~~
segments.cpp:126:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (; i < segsr.size(); i++) {
         ~~^~~~~~~~~~~~~~
segments.cpp:129:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (; j < lasts.size(); j++) {
         ~~^~~~~~~~~~~~~~
segments.cpp: In function 'void rebuild()':
segments.cpp:136:8: warning: unused variable 'w' [-Wunused-variable]
  ll q, w;
        ^
segments.cpp: In function 'll slowL(ll, ll, ll)':
segments.cpp:204:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (q = 0; q < L[i].size(); q++) {
              ~~^~~~~~~~~~~~~
segments.cpp: In function 'll slowR(ll, ll, ll)':
segments.cpp:215:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (q = 0; q < R[i].size(); q++) {
              ~~^~~~~~~~~~~~~
segments.cpp: In function 'll getansL(ll, ll)':
segments.cpp:292:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (q = 0; q < lasts.size(); q++) {
              ~~^~~~~~~~~~~~~~
segments.cpp: In function 'll getansR(ll, ll)':
segments.cpp:332:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (q = 0; q < lasts.size(); q++) {
              ~~^~~~~~~~~~~~~~
segments.cpp: In function 'll answer(seg, ll)':
segments.cpp:347:5: warning: unused variable 'q' [-Wunused-variable]
  ll q, w;
     ^
segments.cpp:347:8: warning: unused variable 'w' [-Wunused-variable]
  ll q, w;
        ^
segments.cpp: In function 'int main()':
segments.cpp:358:8: warning: unused variable 'w' [-Wunused-variable]
  ll q, w, e, a, b, c;
        ^
segments.cpp:358:11: warning: unused variable 'e' [-Wunused-variable]
  ll q, w, e, a, b, c;
           ^
segments.cpp:358:17: warning: unused variable 'b' [-Wunused-variable]
  ll q, w, e, a, b, c;
                 ^
segments.cpp:362:5: warning: unused variable 'nxt' [-Wunused-variable]
  ll nxt = 0;
     ^~~
segments.cpp: In function 'void rebuild()':
segments.cpp:129:11: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized]
  for (; j < lasts.size(); j++) {
         ~~^~~~~~~~~~~~~~
segments.cpp:114:8: note: 'j' was declared here
  ll i, j;
        ^
segments.cpp:116:11: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized]
  while (i != segsr.size() && j != lasts.size()) {
         ~~^~~~~~~~~~~~~~~
segments.cpp:114:5: note: 'i' was declared here
  ll i, j;
     ^
segments.cpp:107:11: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized]
  for (; j < lasts.size(); j++) {
         ~~^~~~~~~~~~~~~~
segments.cpp:92:8: note: 'j' was declared here
  ll i, j;
        ^
segments.cpp:94:11: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized]
  while (i != segsl.size() && j != lasts.size()) {
         ~~^~~~~~~~~~~~~~~
segments.cpp:92:5: note: 'i' was declared here
  ll i, j;
     ^
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1980 KB Output is correct
2 Correct 3 ms 1912 KB Output is correct
3 Correct 11 ms 2168 KB Output is correct
4 Correct 10 ms 2120 KB Output is correct
5 Correct 14 ms 2296 KB Output is correct
6 Correct 18 ms 2296 KB Output is correct
7 Correct 36 ms 2168 KB Output is correct
8 Correct 39 ms 2168 KB Output is correct
9 Correct 42 ms 2248 KB Output is correct
10 Correct 18 ms 2300 KB Output is correct
11 Correct 43 ms 2296 KB Output is correct
12 Correct 25 ms 2296 KB Output is correct
13 Correct 20 ms 2296 KB Output is correct
14 Correct 44 ms 2232 KB Output is correct
15 Correct 10 ms 2168 KB Output is correct
16 Correct 13 ms 2140 KB Output is correct
17 Correct 46 ms 2168 KB Output is correct
18 Correct 28 ms 2220 KB Output is correct
19 Correct 48 ms 2168 KB Output is correct
20 Correct 45 ms 2088 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1456 ms 5824 KB Output is correct
2 Correct 1482 ms 5924 KB Output is correct
3 Correct 1464 ms 5728 KB Output is correct
4 Correct 1439 ms 6004 KB Output is correct
5 Correct 350 ms 7560 KB Output is correct
6 Correct 230 ms 7648 KB Output is correct
7 Correct 1515 ms 5868 KB Output is correct
8 Correct 1499 ms 5900 KB Output is correct
9 Correct 1473 ms 5792 KB Output is correct
10 Correct 1365 ms 4672 KB Output is correct
11 Correct 1426 ms 4900 KB Output is correct
12 Correct 1142 ms 6860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 240 ms 4920 KB Output is correct
2 Correct 228 ms 4972 KB Output is correct
3 Correct 320 ms 4996 KB Output is correct
4 Correct 207 ms 4936 KB Output is correct
5 Correct 591 ms 6812 KB Output is correct
6 Correct 700 ms 6120 KB Output is correct
7 Correct 653 ms 6584 KB Output is correct
8 Correct 214 ms 7600 KB Output is correct
9 Correct 435 ms 8728 KB Output is correct
10 Correct 1225 ms 7648 KB Output is correct
11 Correct 940 ms 5164 KB Output is correct
12 Correct 1140 ms 8092 KB Output is correct
13 Correct 1297 ms 7504 KB Output is correct
14 Correct 1682 ms 6232 KB Output is correct
15 Correct 1715 ms 5520 KB Output is correct
16 Correct 1592 ms 5228 KB Output is correct
17 Correct 828 ms 5344 KB Output is correct
18 Correct 824 ms 5340 KB Output is correct
19 Correct 805 ms 5272 KB Output is correct
20 Correct 826 ms 5344 KB Output is correct
21 Correct 1183 ms 4772 KB Output is correct
22 Correct 1676 ms 5940 KB Output is correct
23 Correct 1489 ms 6500 KB Output is correct
24 Correct 1821 ms 6004 KB Output is correct
25 Correct 235 ms 4432 KB Output is correct
26 Correct 224 ms 4512 KB Output is correct
27 Correct 233 ms 4364 KB Output is correct
28 Correct 219 ms 4396 KB Output is correct
29 Correct 1410 ms 6812 KB Output is correct
30 Correct 1408 ms 6748 KB Output is correct
31 Correct 408 ms 8204 KB Output is correct
32 Correct 1171 ms 7156 KB Output is correct
33 Correct 1277 ms 7204 KB Output is correct
34 Correct 1672 ms 5792 KB Output is correct
35 Correct 1480 ms 6672 KB Output is correct
36 Correct 1181 ms 7516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 196 ms 4940 KB Output is correct
2 Correct 204 ms 4928 KB Output is correct
3 Correct 203 ms 4892 KB Output is correct
4 Correct 214 ms 4912 KB Output is correct
5 Correct 943 ms 6652 KB Output is correct
6 Correct 1167 ms 3244 KB Output is correct
7 Correct 746 ms 6056 KB Output is correct
8 Correct 1318 ms 3544 KB Output is correct
9 Correct 1921 ms 5124 KB Output is correct
10 Correct 1212 ms 6888 KB Output is correct
11 Correct 1731 ms 4340 KB Output is correct
12 Correct 305 ms 7072 KB Output is correct
13 Correct 1468 ms 6532 KB Output is correct
14 Correct 1938 ms 5408 KB Output is correct
15 Correct 512 ms 7712 KB Output is correct
16 Correct 1367 ms 7032 KB Output is correct
17 Correct 1468 ms 4816 KB Output is correct
18 Correct 1502 ms 4860 KB Output is correct
19 Correct 1518 ms 4804 KB Output is correct
20 Correct 1507 ms 4816 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1980 KB Output is correct
2 Correct 3 ms 1912 KB Output is correct
3 Correct 11 ms 2168 KB Output is correct
4 Correct 10 ms 2120 KB Output is correct
5 Correct 14 ms 2296 KB Output is correct
6 Correct 18 ms 2296 KB Output is correct
7 Correct 36 ms 2168 KB Output is correct
8 Correct 39 ms 2168 KB Output is correct
9 Correct 42 ms 2248 KB Output is correct
10 Correct 18 ms 2300 KB Output is correct
11 Correct 43 ms 2296 KB Output is correct
12 Correct 25 ms 2296 KB Output is correct
13 Correct 20 ms 2296 KB Output is correct
14 Correct 44 ms 2232 KB Output is correct
15 Correct 10 ms 2168 KB Output is correct
16 Correct 13 ms 2140 KB Output is correct
17 Correct 46 ms 2168 KB Output is correct
18 Correct 28 ms 2220 KB Output is correct
19 Correct 48 ms 2168 KB Output is correct
20 Correct 45 ms 2088 KB Output is correct
21 Correct 1456 ms 5824 KB Output is correct
22 Correct 1482 ms 5924 KB Output is correct
23 Correct 1464 ms 5728 KB Output is correct
24 Correct 1439 ms 6004 KB Output is correct
25 Correct 350 ms 7560 KB Output is correct
26 Correct 230 ms 7648 KB Output is correct
27 Correct 1515 ms 5868 KB Output is correct
28 Correct 1499 ms 5900 KB Output is correct
29 Correct 1473 ms 5792 KB Output is correct
30 Correct 1365 ms 4672 KB Output is correct
31 Correct 1426 ms 4900 KB Output is correct
32 Correct 1142 ms 6860 KB Output is correct
33 Correct 196 ms 4940 KB Output is correct
34 Correct 204 ms 4928 KB Output is correct
35 Correct 203 ms 4892 KB Output is correct
36 Correct 214 ms 4912 KB Output is correct
37 Correct 943 ms 6652 KB Output is correct
38 Correct 1167 ms 3244 KB Output is correct
39 Correct 746 ms 6056 KB Output is correct
40 Correct 1318 ms 3544 KB Output is correct
41 Correct 1921 ms 5124 KB Output is correct
42 Correct 1212 ms 6888 KB Output is correct
43 Correct 1731 ms 4340 KB Output is correct
44 Correct 305 ms 7072 KB Output is correct
45 Correct 1468 ms 6532 KB Output is correct
46 Correct 1938 ms 5408 KB Output is correct
47 Correct 512 ms 7712 KB Output is correct
48 Correct 1367 ms 7032 KB Output is correct
49 Correct 1468 ms 4816 KB Output is correct
50 Correct 1502 ms 4860 KB Output is correct
51 Correct 1518 ms 4804 KB Output is correct
52 Correct 1507 ms 4816 KB Output is correct
53 Correct 228 ms 4072 KB Output is correct
54 Correct 230 ms 4064 KB Output is correct
55 Correct 203 ms 4004 KB Output is correct
56 Correct 235 ms 4188 KB Output is correct
57 Correct 1534 ms 4312 KB Output is correct
58 Correct 1043 ms 3464 KB Output is correct
59 Correct 1357 ms 5332 KB Output is correct
60 Correct 1031 ms 3520 KB Output is correct
61 Correct 1573 ms 6648 KB Output is correct
62 Correct 680 ms 7868 KB Output is correct
63 Correct 408 ms 7152 KB Output is correct
64 Correct 635 ms 8020 KB Output is correct
65 Correct 1761 ms 4928 KB Output is correct
66 Correct 1889 ms 4840 KB Output is correct
67 Correct 1341 ms 7040 KB Output is correct
68 Correct 1699 ms 6404 KB Output is correct
69 Correct 1584 ms 5452 KB Output is correct
70 Correct 1466 ms 5496 KB Output is correct
71 Correct 1456 ms 5460 KB Output is correct
72 Correct 1468 ms 5408 KB Output is correct
73 Correct 1944 ms 5544 KB Output is correct
74 Correct 1804 ms 6492 KB Output is correct
75 Correct 182 ms 7160 KB Output is correct
76 Correct 372 ms 7368 KB Output is correct
77 Correct 213 ms 3920 KB Output is correct
78 Correct 200 ms 3880 KB Output is correct
79 Correct 223 ms 4036 KB Output is correct
80 Correct 208 ms 4044 KB Output is correct
81 Correct 1854 ms 5860 KB Output is correct
82 Correct 1923 ms 5140 KB Output is correct
83 Correct 1670 ms 4632 KB Output is correct
84 Correct 1820 ms 5968 KB Output is correct
85 Correct 1341 ms 6828 KB Output is correct
86 Correct 1307 ms 7156 KB Output is correct
87 Correct 1821 ms 5684 KB Output is correct
88 Correct 1628 ms 4536 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1980 KB Output is correct
2 Correct 3 ms 1912 KB Output is correct
3 Correct 11 ms 2168 KB Output is correct
4 Correct 10 ms 2120 KB Output is correct
5 Correct 14 ms 2296 KB Output is correct
6 Correct 18 ms 2296 KB Output is correct
7 Correct 36 ms 2168 KB Output is correct
8 Correct 39 ms 2168 KB Output is correct
9 Correct 42 ms 2248 KB Output is correct
10 Correct 18 ms 2300 KB Output is correct
11 Correct 43 ms 2296 KB Output is correct
12 Correct 25 ms 2296 KB Output is correct
13 Correct 20 ms 2296 KB Output is correct
14 Correct 44 ms 2232 KB Output is correct
15 Correct 10 ms 2168 KB Output is correct
16 Correct 13 ms 2140 KB Output is correct
17 Correct 46 ms 2168 KB Output is correct
18 Correct 28 ms 2220 KB Output is correct
19 Correct 48 ms 2168 KB Output is correct
20 Correct 45 ms 2088 KB Output is correct
21 Correct 1456 ms 5824 KB Output is correct
22 Correct 1482 ms 5924 KB Output is correct
23 Correct 1464 ms 5728 KB Output is correct
24 Correct 1439 ms 6004 KB Output is correct
25 Correct 350 ms 7560 KB Output is correct
26 Correct 230 ms 7648 KB Output is correct
27 Correct 1515 ms 5868 KB Output is correct
28 Correct 1499 ms 5900 KB Output is correct
29 Correct 1473 ms 5792 KB Output is correct
30 Correct 1365 ms 4672 KB Output is correct
31 Correct 1426 ms 4900 KB Output is correct
32 Correct 1142 ms 6860 KB Output is correct
33 Correct 240 ms 4920 KB Output is correct
34 Correct 228 ms 4972 KB Output is correct
35 Correct 320 ms 4996 KB Output is correct
36 Correct 207 ms 4936 KB Output is correct
37 Correct 591 ms 6812 KB Output is correct
38 Correct 700 ms 6120 KB Output is correct
39 Correct 653 ms 6584 KB Output is correct
40 Correct 214 ms 7600 KB Output is correct
41 Correct 435 ms 8728 KB Output is correct
42 Correct 1225 ms 7648 KB Output is correct
43 Correct 940 ms 5164 KB Output is correct
44 Correct 1140 ms 8092 KB Output is correct
45 Correct 1297 ms 7504 KB Output is correct
46 Correct 1682 ms 6232 KB Output is correct
47 Correct 1715 ms 5520 KB Output is correct
48 Correct 1592 ms 5228 KB Output is correct
49 Correct 828 ms 5344 KB Output is correct
50 Correct 824 ms 5340 KB Output is correct
51 Correct 805 ms 5272 KB Output is correct
52 Correct 826 ms 5344 KB Output is correct
53 Correct 1183 ms 4772 KB Output is correct
54 Correct 1676 ms 5940 KB Output is correct
55 Correct 1489 ms 6500 KB Output is correct
56 Correct 1821 ms 6004 KB Output is correct
57 Correct 235 ms 4432 KB Output is correct
58 Correct 224 ms 4512 KB Output is correct
59 Correct 233 ms 4364 KB Output is correct
60 Correct 219 ms 4396 KB Output is correct
61 Correct 1410 ms 6812 KB Output is correct
62 Correct 1408 ms 6748 KB Output is correct
63 Correct 408 ms 8204 KB Output is correct
64 Correct 1171 ms 7156 KB Output is correct
65 Correct 1277 ms 7204 KB Output is correct
66 Correct 1672 ms 5792 KB Output is correct
67 Correct 1480 ms 6672 KB Output is correct
68 Correct 1181 ms 7516 KB Output is correct
69 Correct 196 ms 4940 KB Output is correct
70 Correct 204 ms 4928 KB Output is correct
71 Correct 203 ms 4892 KB Output is correct
72 Correct 214 ms 4912 KB Output is correct
73 Correct 943 ms 6652 KB Output is correct
74 Correct 1167 ms 3244 KB Output is correct
75 Correct 746 ms 6056 KB Output is correct
76 Correct 1318 ms 3544 KB Output is correct
77 Correct 1921 ms 5124 KB Output is correct
78 Correct 1212 ms 6888 KB Output is correct
79 Correct 1731 ms 4340 KB Output is correct
80 Correct 305 ms 7072 KB Output is correct
81 Correct 1468 ms 6532 KB Output is correct
82 Correct 1938 ms 5408 KB Output is correct
83 Correct 512 ms 7712 KB Output is correct
84 Correct 1367 ms 7032 KB Output is correct
85 Correct 1468 ms 4816 KB Output is correct
86 Correct 1502 ms 4860 KB Output is correct
87 Correct 1518 ms 4804 KB Output is correct
88 Correct 1507 ms 4816 KB Output is correct
89 Correct 228 ms 4072 KB Output is correct
90 Correct 230 ms 4064 KB Output is correct
91 Correct 203 ms 4004 KB Output is correct
92 Correct 235 ms 4188 KB Output is correct
93 Correct 1534 ms 4312 KB Output is correct
94 Correct 1043 ms 3464 KB Output is correct
95 Correct 1357 ms 5332 KB Output is correct
96 Correct 1031 ms 3520 KB Output is correct
97 Correct 1573 ms 6648 KB Output is correct
98 Correct 680 ms 7868 KB Output is correct
99 Correct 408 ms 7152 KB Output is correct
100 Correct 635 ms 8020 KB Output is correct
101 Correct 1761 ms 4928 KB Output is correct
102 Correct 1889 ms 4840 KB Output is correct
103 Correct 1341 ms 7040 KB Output is correct
104 Correct 1699 ms 6404 KB Output is correct
105 Correct 1584 ms 5452 KB Output is correct
106 Correct 1466 ms 5496 KB Output is correct
107 Correct 1456 ms 5460 KB Output is correct
108 Correct 1468 ms 5408 KB Output is correct
109 Correct 1944 ms 5544 KB Output is correct
110 Correct 1804 ms 6492 KB Output is correct
111 Correct 182 ms 7160 KB Output is correct
112 Correct 372 ms 7368 KB Output is correct
113 Correct 213 ms 3920 KB Output is correct
114 Correct 200 ms 3880 KB Output is correct
115 Correct 223 ms 4036 KB Output is correct
116 Correct 208 ms 4044 KB Output is correct
117 Correct 1854 ms 5860 KB Output is correct
118 Correct 1923 ms 5140 KB Output is correct
119 Correct 1670 ms 4632 KB Output is correct
120 Correct 1820 ms 5968 KB Output is correct
121 Correct 1341 ms 6828 KB Output is correct
122 Correct 1307 ms 7156 KB Output is correct
123 Correct 1821 ms 5684 KB Output is correct
124 Correct 1628 ms 4536 KB Output is correct
125 Correct 469 ms 5596 KB Output is correct
126 Correct 510 ms 5068 KB Output is correct
127 Correct 631 ms 5352 KB Output is correct
128 Correct 543 ms 5332 KB Output is correct
129 Correct 476 ms 4940 KB Output is correct
130 Correct 594 ms 5088 KB Output is correct
131 Correct 2948 ms 4020 KB Output is correct
132 Correct 4755 ms 6848 KB Output is correct
133 Correct 3983 ms 8756 KB Output is correct
134 Correct 3751 ms 4488 KB Output is correct
135 Correct 3750 ms 9140 KB Output is correct
136 Correct 1749 ms 3236 KB Output is correct
137 Correct 1618 ms 13084 KB Output is correct
138 Correct 4312 ms 10264 KB Output is correct
139 Correct 3211 ms 11772 KB Output is correct
140 Correct 2133 ms 12676 KB Output is correct
141 Correct 3913 ms 10640 KB Output is correct
142 Correct 3011 ms 5948 KB Output is correct
143 Correct 4436 ms 6876 KB Output is correct
144 Correct 2055 ms 5676 KB Output is correct
145 Correct 2278 ms 12564 KB Output is correct
146 Correct 4578 ms 8300 KB Output is correct
147 Correct 4359 ms 7024 KB Output is correct
148 Correct 4454 ms 7016 KB Output is correct
149 Correct 4690 ms 7284 KB Output is correct
150 Correct 4728 ms 7360 KB Output is correct
151 Correct 4709 ms 7320 KB Output is correct
152 Correct 4756 ms 7176 KB Output is correct
153 Correct 4633 ms 7268 KB Output is correct
154 Correct 4632 ms 7168 KB Output is correct
155 Correct 3819 ms 6272 KB Output is correct
156 Correct 4732 ms 7112 KB Output is correct
157 Correct 2031 ms 12956 KB Output is correct
158 Correct 1683 ms 13076 KB Output is correct
159 Correct 4157 ms 10468 KB Output is correct
160 Correct 4826 ms 8392 KB Output is correct
161 Correct 604 ms 9528 KB Output is correct
162 Correct 556 ms 9520 KB Output is correct
163 Correct 559 ms 9324 KB Output is correct
164 Correct 974 ms 9580 KB Output is correct
165 Correct 638 ms 9516 KB Output is correct
166 Correct 547 ms 9388 KB Output is correct
167 Correct 1209 ms 17872 KB Output is correct
168 Correct 1235 ms 17872 KB Output is correct
169 Correct 2138 ms 17172 KB Output is correct
170 Correct 2562 ms 16792 KB Output is correct
171 Correct 3976 ms 15196 KB Output is correct
172 Correct 4793 ms 12352 KB Output is correct
173 Correct 1796 ms 17240 KB Output is correct
174 Correct 4555 ms 12504 KB Output is correct
175 Correct 3333 ms 15848 KB Output is correct
176 Correct 4172 ms 11260 KB Output is correct
177 Correct 3979 ms 14696 KB Output is correct
178 Correct 4190 ms 14380 KB Output is correct