Submission #161325

# Submission time Handle Problem Language Result Execution time Memory
161325 2019-11-01T20:20:00 Z pink_bittern Segments (IZhO18_segments) C++14
75 / 100
5000 ms 9100 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 + 100;
const ll block = 120;
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.pb(good);
	ll j = bpl(i, x);
	// 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.pb(good);
	ll j = bpr(i, x);
	// 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) {
				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 1400 KB Output is correct
2 Correct 3 ms 1272 KB Output is correct
3 Correct 11 ms 1400 KB Output is correct
4 Correct 10 ms 1400 KB Output is correct
5 Correct 20 ms 1476 KB Output is correct
6 Correct 26 ms 1528 KB Output is correct
7 Correct 37 ms 1400 KB Output is correct
8 Correct 77 ms 1528 KB Output is correct
9 Correct 108 ms 1628 KB Output is correct
10 Correct 34 ms 1528 KB Output is correct
11 Correct 39 ms 1400 KB Output is correct
12 Correct 39 ms 1400 KB Output is correct
13 Correct 35 ms 1528 KB Output is correct
14 Correct 90 ms 1528 KB Output is correct
15 Correct 10 ms 1400 KB Output is correct
16 Correct 13 ms 1400 KB Output is correct
17 Correct 67 ms 1456 KB Output is correct
18 Correct 55 ms 1656 KB Output is correct
19 Correct 74 ms 1400 KB Output is correct
20 Correct 89 ms 1608 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2098 ms 4104 KB Output is correct
2 Correct 2053 ms 4028 KB Output is correct
3 Correct 2077 ms 4016 KB Output is correct
4 Correct 1952 ms 4380 KB Output is correct
5 Correct 451 ms 5900 KB Output is correct
6 Correct 276 ms 5920 KB Output is correct
7 Correct 2111 ms 4144 KB Output is correct
8 Correct 2067 ms 4144 KB Output is correct
9 Correct 2093 ms 4088 KB Output is correct
10 Correct 2062 ms 2744 KB Output is correct
11 Correct 2184 ms 3208 KB Output is correct
12 Correct 1532 ms 5112 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 237 ms 3024 KB Output is correct
2 Correct 200 ms 2924 KB Output is correct
3 Correct 325 ms 3164 KB Output is correct
4 Correct 201 ms 3048 KB Output is correct
5 Correct 1286 ms 5308 KB Output is correct
6 Correct 1575 ms 4668 KB Output is correct
7 Correct 1451 ms 5092 KB Output is correct
8 Correct 367 ms 6012 KB Output is correct
9 Correct 873 ms 6576 KB Output is correct
10 Correct 2507 ms 6244 KB Output is correct
11 Correct 1924 ms 3564 KB Output is correct
12 Correct 2783 ms 6476 KB Output is correct
13 Correct 2887 ms 6280 KB Output is correct
14 Correct 3803 ms 4728 KB Output is correct
15 Correct 3700 ms 4436 KB Output is correct
16 Correct 3441 ms 3764 KB Output is correct
17 Correct 1821 ms 4400 KB Output is correct
18 Correct 1788 ms 4400 KB Output is correct
19 Correct 1788 ms 4272 KB Output is correct
20 Correct 1798 ms 4268 KB Output is correct
21 Correct 2377 ms 3576 KB Output is correct
22 Correct 3735 ms 4756 KB Output is correct
23 Correct 3370 ms 5300 KB Output is correct
24 Correct 3672 ms 4928 KB Output is correct
25 Correct 259 ms 2932 KB Output is correct
26 Correct 213 ms 3028 KB Output is correct
27 Correct 260 ms 2924 KB Output is correct
28 Correct 216 ms 2896 KB Output is correct
29 Correct 3064 ms 5880 KB Output is correct
30 Correct 3158 ms 5724 KB Output is correct
31 Correct 782 ms 6432 KB Output is correct
32 Correct 2574 ms 6092 KB Output is correct
33 Correct 2883 ms 6048 KB Output is correct
34 Correct 3772 ms 4408 KB Output is correct
35 Correct 3282 ms 5400 KB Output is correct
36 Correct 2583 ms 6472 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 195 ms 3420 KB Output is correct
2 Correct 199 ms 3668 KB Output is correct
3 Correct 207 ms 3444 KB Output is correct
4 Correct 222 ms 3668 KB Output is correct
5 Correct 1274 ms 5948 KB Output is correct
6 Correct 1887 ms 3384 KB Output is correct
7 Correct 1030 ms 6212 KB Output is correct
8 Correct 2243 ms 3684 KB Output is correct
9 Correct 3933 ms 5252 KB Output is correct
10 Correct 2288 ms 7244 KB Output is correct
11 Correct 3358 ms 4216 KB Output is correct
12 Correct 480 ms 7064 KB Output is correct
13 Correct 3074 ms 6804 KB Output is correct
14 Correct 3860 ms 5460 KB Output is correct
15 Correct 978 ms 7868 KB Output is correct
16 Correct 2736 ms 6600 KB Output is correct
17 Correct 2153 ms 5508 KB Output is correct
18 Correct 2086 ms 5560 KB Output is correct
19 Correct 2084 ms 5484 KB Output is correct
20 Correct 2239 ms 5408 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1400 KB Output is correct
2 Correct 3 ms 1272 KB Output is correct
3 Correct 11 ms 1400 KB Output is correct
4 Correct 10 ms 1400 KB Output is correct
5 Correct 20 ms 1476 KB Output is correct
6 Correct 26 ms 1528 KB Output is correct
7 Correct 37 ms 1400 KB Output is correct
8 Correct 77 ms 1528 KB Output is correct
9 Correct 108 ms 1628 KB Output is correct
10 Correct 34 ms 1528 KB Output is correct
11 Correct 39 ms 1400 KB Output is correct
12 Correct 39 ms 1400 KB Output is correct
13 Correct 35 ms 1528 KB Output is correct
14 Correct 90 ms 1528 KB Output is correct
15 Correct 10 ms 1400 KB Output is correct
16 Correct 13 ms 1400 KB Output is correct
17 Correct 67 ms 1456 KB Output is correct
18 Correct 55 ms 1656 KB Output is correct
19 Correct 74 ms 1400 KB Output is correct
20 Correct 89 ms 1608 KB Output is correct
21 Correct 2098 ms 4104 KB Output is correct
22 Correct 2053 ms 4028 KB Output is correct
23 Correct 2077 ms 4016 KB Output is correct
24 Correct 1952 ms 4380 KB Output is correct
25 Correct 451 ms 5900 KB Output is correct
26 Correct 276 ms 5920 KB Output is correct
27 Correct 2111 ms 4144 KB Output is correct
28 Correct 2067 ms 4144 KB Output is correct
29 Correct 2093 ms 4088 KB Output is correct
30 Correct 2062 ms 2744 KB Output is correct
31 Correct 2184 ms 3208 KB Output is correct
32 Correct 1532 ms 5112 KB Output is correct
33 Correct 195 ms 3420 KB Output is correct
34 Correct 199 ms 3668 KB Output is correct
35 Correct 207 ms 3444 KB Output is correct
36 Correct 222 ms 3668 KB Output is correct
37 Correct 1274 ms 5948 KB Output is correct
38 Correct 1887 ms 3384 KB Output is correct
39 Correct 1030 ms 6212 KB Output is correct
40 Correct 2243 ms 3684 KB Output is correct
41 Correct 3933 ms 5252 KB Output is correct
42 Correct 2288 ms 7244 KB Output is correct
43 Correct 3358 ms 4216 KB Output is correct
44 Correct 480 ms 7064 KB Output is correct
45 Correct 3074 ms 6804 KB Output is correct
46 Correct 3860 ms 5460 KB Output is correct
47 Correct 978 ms 7868 KB Output is correct
48 Correct 2736 ms 6600 KB Output is correct
49 Correct 2153 ms 5508 KB Output is correct
50 Correct 2086 ms 5560 KB Output is correct
51 Correct 2084 ms 5484 KB Output is correct
52 Correct 2239 ms 5408 KB Output is correct
53 Correct 228 ms 4148 KB Output is correct
54 Correct 274 ms 4044 KB Output is correct
55 Correct 197 ms 3916 KB Output is correct
56 Correct 206 ms 3964 KB Output is correct
57 Correct 2264 ms 4456 KB Output is correct
58 Correct 1802 ms 3876 KB Output is correct
59 Correct 1824 ms 5620 KB Output is correct
60 Correct 1803 ms 3648 KB Output is correct
61 Correct 2992 ms 6876 KB Output is correct
62 Correct 1213 ms 8164 KB Output is correct
63 Correct 691 ms 7504 KB Output is correct
64 Correct 1137 ms 8128 KB Output is correct
65 Correct 3803 ms 5532 KB Output is correct
66 Correct 3574 ms 4956 KB Output is correct
67 Correct 2653 ms 7356 KB Output is correct
68 Correct 3348 ms 6304 KB Output is correct
69 Correct 2081 ms 5516 KB Output is correct
70 Correct 2157 ms 5536 KB Output is correct
71 Correct 2146 ms 5488 KB Output is correct
72 Correct 2139 ms 5380 KB Output is correct
73 Correct 3926 ms 5500 KB Output is correct
74 Correct 3569 ms 6340 KB Output is correct
75 Correct 261 ms 7176 KB Output is correct
76 Correct 624 ms 7540 KB Output is correct
77 Correct 213 ms 3924 KB Output is correct
78 Correct 211 ms 4084 KB Output is correct
79 Correct 231 ms 4112 KB Output is correct
80 Correct 214 ms 4132 KB Output is correct
81 Correct 3610 ms 6112 KB Output is correct
82 Correct 3910 ms 5548 KB Output is correct
83 Correct 3435 ms 4780 KB Output is correct
84 Correct 3567 ms 6112 KB Output is correct
85 Correct 2625 ms 7276 KB Output is correct
86 Correct 2500 ms 7648 KB Output is correct
87 Correct 3883 ms 6008 KB Output is correct
88 Correct 3317 ms 4884 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1400 KB Output is correct
2 Correct 3 ms 1272 KB Output is correct
3 Correct 11 ms 1400 KB Output is correct
4 Correct 10 ms 1400 KB Output is correct
5 Correct 20 ms 1476 KB Output is correct
6 Correct 26 ms 1528 KB Output is correct
7 Correct 37 ms 1400 KB Output is correct
8 Correct 77 ms 1528 KB Output is correct
9 Correct 108 ms 1628 KB Output is correct
10 Correct 34 ms 1528 KB Output is correct
11 Correct 39 ms 1400 KB Output is correct
12 Correct 39 ms 1400 KB Output is correct
13 Correct 35 ms 1528 KB Output is correct
14 Correct 90 ms 1528 KB Output is correct
15 Correct 10 ms 1400 KB Output is correct
16 Correct 13 ms 1400 KB Output is correct
17 Correct 67 ms 1456 KB Output is correct
18 Correct 55 ms 1656 KB Output is correct
19 Correct 74 ms 1400 KB Output is correct
20 Correct 89 ms 1608 KB Output is correct
21 Correct 2098 ms 4104 KB Output is correct
22 Correct 2053 ms 4028 KB Output is correct
23 Correct 2077 ms 4016 KB Output is correct
24 Correct 1952 ms 4380 KB Output is correct
25 Correct 451 ms 5900 KB Output is correct
26 Correct 276 ms 5920 KB Output is correct
27 Correct 2111 ms 4144 KB Output is correct
28 Correct 2067 ms 4144 KB Output is correct
29 Correct 2093 ms 4088 KB Output is correct
30 Correct 2062 ms 2744 KB Output is correct
31 Correct 2184 ms 3208 KB Output is correct
32 Correct 1532 ms 5112 KB Output is correct
33 Correct 237 ms 3024 KB Output is correct
34 Correct 200 ms 2924 KB Output is correct
35 Correct 325 ms 3164 KB Output is correct
36 Correct 201 ms 3048 KB Output is correct
37 Correct 1286 ms 5308 KB Output is correct
38 Correct 1575 ms 4668 KB Output is correct
39 Correct 1451 ms 5092 KB Output is correct
40 Correct 367 ms 6012 KB Output is correct
41 Correct 873 ms 6576 KB Output is correct
42 Correct 2507 ms 6244 KB Output is correct
43 Correct 1924 ms 3564 KB Output is correct
44 Correct 2783 ms 6476 KB Output is correct
45 Correct 2887 ms 6280 KB Output is correct
46 Correct 3803 ms 4728 KB Output is correct
47 Correct 3700 ms 4436 KB Output is correct
48 Correct 3441 ms 3764 KB Output is correct
49 Correct 1821 ms 4400 KB Output is correct
50 Correct 1788 ms 4400 KB Output is correct
51 Correct 1788 ms 4272 KB Output is correct
52 Correct 1798 ms 4268 KB Output is correct
53 Correct 2377 ms 3576 KB Output is correct
54 Correct 3735 ms 4756 KB Output is correct
55 Correct 3370 ms 5300 KB Output is correct
56 Correct 3672 ms 4928 KB Output is correct
57 Correct 259 ms 2932 KB Output is correct
58 Correct 213 ms 3028 KB Output is correct
59 Correct 260 ms 2924 KB Output is correct
60 Correct 216 ms 2896 KB Output is correct
61 Correct 3064 ms 5880 KB Output is correct
62 Correct 3158 ms 5724 KB Output is correct
63 Correct 782 ms 6432 KB Output is correct
64 Correct 2574 ms 6092 KB Output is correct
65 Correct 2883 ms 6048 KB Output is correct
66 Correct 3772 ms 4408 KB Output is correct
67 Correct 3282 ms 5400 KB Output is correct
68 Correct 2583 ms 6472 KB Output is correct
69 Correct 195 ms 3420 KB Output is correct
70 Correct 199 ms 3668 KB Output is correct
71 Correct 207 ms 3444 KB Output is correct
72 Correct 222 ms 3668 KB Output is correct
73 Correct 1274 ms 5948 KB Output is correct
74 Correct 1887 ms 3384 KB Output is correct
75 Correct 1030 ms 6212 KB Output is correct
76 Correct 2243 ms 3684 KB Output is correct
77 Correct 3933 ms 5252 KB Output is correct
78 Correct 2288 ms 7244 KB Output is correct
79 Correct 3358 ms 4216 KB Output is correct
80 Correct 480 ms 7064 KB Output is correct
81 Correct 3074 ms 6804 KB Output is correct
82 Correct 3860 ms 5460 KB Output is correct
83 Correct 978 ms 7868 KB Output is correct
84 Correct 2736 ms 6600 KB Output is correct
85 Correct 2153 ms 5508 KB Output is correct
86 Correct 2086 ms 5560 KB Output is correct
87 Correct 2084 ms 5484 KB Output is correct
88 Correct 2239 ms 5408 KB Output is correct
89 Correct 228 ms 4148 KB Output is correct
90 Correct 274 ms 4044 KB Output is correct
91 Correct 197 ms 3916 KB Output is correct
92 Correct 206 ms 3964 KB Output is correct
93 Correct 2264 ms 4456 KB Output is correct
94 Correct 1802 ms 3876 KB Output is correct
95 Correct 1824 ms 5620 KB Output is correct
96 Correct 1803 ms 3648 KB Output is correct
97 Correct 2992 ms 6876 KB Output is correct
98 Correct 1213 ms 8164 KB Output is correct
99 Correct 691 ms 7504 KB Output is correct
100 Correct 1137 ms 8128 KB Output is correct
101 Correct 3803 ms 5532 KB Output is correct
102 Correct 3574 ms 4956 KB Output is correct
103 Correct 2653 ms 7356 KB Output is correct
104 Correct 3348 ms 6304 KB Output is correct
105 Correct 2081 ms 5516 KB Output is correct
106 Correct 2157 ms 5536 KB Output is correct
107 Correct 2146 ms 5488 KB Output is correct
108 Correct 2139 ms 5380 KB Output is correct
109 Correct 3926 ms 5500 KB Output is correct
110 Correct 3569 ms 6340 KB Output is correct
111 Correct 261 ms 7176 KB Output is correct
112 Correct 624 ms 7540 KB Output is correct
113 Correct 213 ms 3924 KB Output is correct
114 Correct 211 ms 4084 KB Output is correct
115 Correct 231 ms 4112 KB Output is correct
116 Correct 214 ms 4132 KB Output is correct
117 Correct 3610 ms 6112 KB Output is correct
118 Correct 3910 ms 5548 KB Output is correct
119 Correct 3435 ms 4780 KB Output is correct
120 Correct 3567 ms 6112 KB Output is correct
121 Correct 2625 ms 7276 KB Output is correct
122 Correct 2500 ms 7648 KB Output is correct
123 Correct 3883 ms 6008 KB Output is correct
124 Correct 3317 ms 4884 KB Output is correct
125 Correct 508 ms 6692 KB Output is correct
126 Correct 506 ms 6336 KB Output is correct
127 Correct 649 ms 6672 KB Output is correct
128 Correct 697 ms 6788 KB Output is correct
129 Correct 463 ms 6376 KB Output is correct
130 Correct 579 ms 6560 KB Output is correct
131 Correct 4583 ms 5924 KB Output is correct
132 Execution timed out 5085 ms 9100 KB Time limit exceeded
133 Halted 0 ms 0 KB -