답안 #340156

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
340156 2020-12-27T05:29:46 Z GioChkhaidze Segments (IZhO18_segments) C++14
100 / 100
2280 ms 7624 KB
#include <bits/stdc++.h>
 
#define pb push_back
 
using namespace std;
 
const int N = 2e5 + 5;
const int Sq = 1300;
 
int A[N], B[N], C[N];
int n, u, t, bl, lastans;
int sq = 1500;
 
struct st { int x; };
 
bool operator<(const st& a,const st& b) { 
	return C[a.x] < C[b.x]; 
}
 
struct {
	vector < st > u, c, ol;
	vector < int > L[N / Sq], R[N / Sq]; 
 
	void insert(st id) {
		u.pb(id);
		if (u.size() == sq) {
			vector < st > c;
			c.reserve(u.size() + ol.size());
			sort(u.begin(), u.end());
			merge(u.begin(), u.end(), ol.begin(), ol.end(), back_inserter(c));
			ol.swap(c); u.clear();
			
			for (int bl = 0; bl*sq < ol.size(); ++bl) {
				L[bl].clear(), R[bl].clear();
			}
			
			for (int i = 0; i < ol.size(); ++i) {
				bl = i / sq;
				L[bl].pb(A[ol[i].x]);
				R[bl].pb(B[ol[i].x]);
			}
			
			for (int bl = 0; bl*sq < ol.size(); ++bl) {
				sort(L[bl].begin(),L[bl].end());
				sort(R[bl].begin(),R[bl].end());
			}
		}
	}
	
	int solve(int l, int r, int k) {
		if (r - l + 1 < k) return 0;
		int ans = 0, s, f, S, F, i;
		for (i = 0; i < u.size(); ++i) 
			if (min(r, B[u[i].x]) - max(l, A[u[i].x]) + 1 >= k) 
				++ans;
		
		for (s = 0; s < ol.size(); s += sq) {
			f = min(s + sq - 1, (int)ol.size() - 1);
 
			if (C[ol[s].x] >= k) {
				bl = f / sq;
				ans += f - s + 1;
				ans -= L[bl].end() - upper_bound(L[bl].begin(), L[bl].end(), r - k + 1); 
				ans -= lower_bound(R[bl].begin(), R[bl].end(), l + k - 1) - R[bl].begin();
			}
				else
			if (C[ol[f].x] >= k) {
				for (i = s; i <= f; ++i) 
					if (min(r, B[ol[i].x]) - max(l, A[ol[i].x]) + 1 >= k)
						 ++ans;
			}
		}
 
		return ans;
	}
	
} rcur, cur;
 
int G(int &x, int &y) {
	x = (x ^ (t * lastans));
	y = (y ^ (t * lastans));
	if (x > y) swap(x, y);
	return y - x + 1;
}
 
main () {
	ios::sync_with_stdio(false);
	cin.tie(NULL), cout.tie(NULL);
	cin >> n >> t;
	st b;
	int ty, id, l, r, k;
	for (int i = 0; i < n; ++i) {
		cin >> ty;
		if (ty == 1) { 
			cin >> A[u] >> B[u]; 
			C[u] = G(A[u], B[u]); b.x = u;
			cur.insert(b), ++u;
		}
			else
		if (ty == 2) { 
			cin >> id; --id; b.x = id;
			rcur.insert(b);
		}
			else
		if (ty == 3) { 
			cin >> l >> r >> k; G(l, r);
			lastans = cur.solve(l, r, k) - rcur.solve(l, r, k);
			cout << lastans << "\n";
		}
	}
}

Compilation message

segments.cpp: In member function 'void<unnamed struct>::insert(st)':
segments.cpp:26:16: warning: comparison of integer expressions of different signedness: 'std::vector<st>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   26 |   if (u.size() == sq) {
      |       ~~~~~~~~~^~~~~
segments.cpp:33:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<st>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |    for (int bl = 0; bl*sq < ol.size(); ++bl) {
      |                     ~~~~~~^~~~~~~~~~~
segments.cpp:37:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<st>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |    for (int i = 0; i < ol.size(); ++i) {
      |                    ~~^~~~~~~~~~~
segments.cpp:43:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<st>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |    for (int bl = 0; bl*sq < ol.size(); ++bl) {
      |                     ~~~~~~^~~~~~~~~~~
segments.cpp: In member function 'int<unnamed struct>::solve(int, int, int)':
segments.cpp:53:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<st>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |   for (i = 0; i < u.size(); ++i)
      |               ~~^~~~~~~~~~
segments.cpp:57:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<st>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |   for (s = 0; s < ol.size(); s += sq) {
      |               ~~^~~~~~~~~~~
segments.cpp:52:22: warning: unused variable 'S' [-Wunused-variable]
   52 |   int ans = 0, s, f, S, F, i;
      |                      ^
segments.cpp:52:25: warning: unused variable 'F' [-Wunused-variable]
   52 |   int ans = 0, s, f, S, F, i;
      |                         ^
segments.cpp: At global scope:
segments.cpp:86:7: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   86 | main () {
      |       ^
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 9 ms 492 KB Output is correct
4 Correct 10 ms 492 KB Output is correct
5 Correct 10 ms 492 KB Output is correct
6 Correct 10 ms 492 KB Output is correct
7 Correct 10 ms 492 KB Output is correct
8 Correct 8 ms 492 KB Output is correct
9 Correct 8 ms 492 KB Output is correct
10 Correct 5 ms 492 KB Output is correct
11 Correct 18 ms 492 KB Output is correct
12 Correct 18 ms 492 KB Output is correct
13 Correct 7 ms 492 KB Output is correct
14 Correct 11 ms 492 KB Output is correct
15 Correct 13 ms 492 KB Output is correct
16 Correct 9 ms 492 KB Output is correct
17 Correct 10 ms 492 KB Output is correct
18 Correct 5 ms 492 KB Output is correct
19 Correct 10 ms 492 KB Output is correct
20 Correct 10 ms 500 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 703 ms 2128 KB Output is correct
2 Correct 700 ms 2124 KB Output is correct
3 Correct 688 ms 2124 KB Output is correct
4 Correct 731 ms 2224 KB Output is correct
5 Correct 491 ms 3380 KB Output is correct
6 Correct 476 ms 3400 KB Output is correct
7 Correct 720 ms 2204 KB Output is correct
8 Correct 684 ms 2116 KB Output is correct
9 Correct 686 ms 2124 KB Output is correct
10 Correct 805 ms 1400 KB Output is correct
11 Correct 604 ms 1900 KB Output is correct
12 Correct 689 ms 2588 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 359 ms 2520 KB Output is correct
2 Correct 348 ms 2400 KB Output is correct
3 Correct 360 ms 2744 KB Output is correct
4 Correct 354 ms 2392 KB Output is correct
5 Correct 502 ms 2640 KB Output is correct
6 Correct 455 ms 2256 KB Output is correct
7 Correct 498 ms 2404 KB Output is correct
8 Correct 464 ms 3360 KB Output is correct
9 Correct 454 ms 3484 KB Output is correct
10 Correct 429 ms 3020 KB Output is correct
11 Correct 374 ms 2412 KB Output is correct
12 Correct 417 ms 3008 KB Output is correct
13 Correct 388 ms 2848 KB Output is correct
14 Correct 359 ms 2784 KB Output is correct
15 Correct 350 ms 2492 KB Output is correct
16 Correct 352 ms 2452 KB Output is correct
17 Correct 421 ms 2124 KB Output is correct
18 Correct 428 ms 2252 KB Output is correct
19 Correct 425 ms 2124 KB Output is correct
20 Correct 433 ms 2124 KB Output is correct
21 Correct 370 ms 2924 KB Output is correct
22 Correct 398 ms 2740 KB Output is correct
23 Correct 401 ms 2968 KB Output is correct
24 Correct 402 ms 2796 KB Output is correct
25 Correct 353 ms 2392 KB Output is correct
26 Correct 344 ms 2392 KB Output is correct
27 Correct 363 ms 2392 KB Output is correct
28 Correct 349 ms 2536 KB Output is correct
29 Correct 408 ms 2876 KB Output is correct
30 Correct 401 ms 2872 KB Output is correct
31 Correct 435 ms 3268 KB Output is correct
32 Correct 436 ms 3128 KB Output is correct
33 Correct 390 ms 3260 KB Output is correct
34 Correct 357 ms 2492 KB Output is correct
35 Correct 376 ms 3004 KB Output is correct
36 Correct 403 ms 3032 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 631 ms 2404 KB Output is correct
2 Correct 616 ms 2392 KB Output is correct
3 Correct 620 ms 2364 KB Output is correct
4 Correct 615 ms 2392 KB Output is correct
5 Correct 594 ms 2744 KB Output is correct
6 Correct 606 ms 1532 KB Output is correct
7 Correct 570 ms 2960 KB Output is correct
8 Correct 773 ms 1436 KB Output is correct
9 Correct 630 ms 2588 KB Output is correct
10 Correct 547 ms 3172 KB Output is correct
11 Correct 641 ms 2464 KB Output is correct
12 Correct 456 ms 3296 KB Output is correct
13 Correct 575 ms 2840 KB Output is correct
14 Correct 631 ms 2680 KB Output is correct
15 Correct 495 ms 3472 KB Output is correct
16 Correct 562 ms 3048 KB Output is correct
17 Correct 698 ms 2152 KB Output is correct
18 Correct 686 ms 2124 KB Output is correct
19 Correct 681 ms 2252 KB Output is correct
20 Correct 684 ms 2292 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 9 ms 492 KB Output is correct
4 Correct 10 ms 492 KB Output is correct
5 Correct 10 ms 492 KB Output is correct
6 Correct 10 ms 492 KB Output is correct
7 Correct 10 ms 492 KB Output is correct
8 Correct 8 ms 492 KB Output is correct
9 Correct 8 ms 492 KB Output is correct
10 Correct 5 ms 492 KB Output is correct
11 Correct 18 ms 492 KB Output is correct
12 Correct 18 ms 492 KB Output is correct
13 Correct 7 ms 492 KB Output is correct
14 Correct 11 ms 492 KB Output is correct
15 Correct 13 ms 492 KB Output is correct
16 Correct 9 ms 492 KB Output is correct
17 Correct 10 ms 492 KB Output is correct
18 Correct 5 ms 492 KB Output is correct
19 Correct 10 ms 492 KB Output is correct
20 Correct 10 ms 500 KB Output is correct
21 Correct 703 ms 2128 KB Output is correct
22 Correct 700 ms 2124 KB Output is correct
23 Correct 688 ms 2124 KB Output is correct
24 Correct 731 ms 2224 KB Output is correct
25 Correct 491 ms 3380 KB Output is correct
26 Correct 476 ms 3400 KB Output is correct
27 Correct 720 ms 2204 KB Output is correct
28 Correct 684 ms 2116 KB Output is correct
29 Correct 686 ms 2124 KB Output is correct
30 Correct 805 ms 1400 KB Output is correct
31 Correct 604 ms 1900 KB Output is correct
32 Correct 689 ms 2588 KB Output is correct
33 Correct 631 ms 2404 KB Output is correct
34 Correct 616 ms 2392 KB Output is correct
35 Correct 620 ms 2364 KB Output is correct
36 Correct 615 ms 2392 KB Output is correct
37 Correct 594 ms 2744 KB Output is correct
38 Correct 606 ms 1532 KB Output is correct
39 Correct 570 ms 2960 KB Output is correct
40 Correct 773 ms 1436 KB Output is correct
41 Correct 630 ms 2588 KB Output is correct
42 Correct 547 ms 3172 KB Output is correct
43 Correct 641 ms 2464 KB Output is correct
44 Correct 456 ms 3296 KB Output is correct
45 Correct 575 ms 2840 KB Output is correct
46 Correct 631 ms 2680 KB Output is correct
47 Correct 495 ms 3472 KB Output is correct
48 Correct 562 ms 3048 KB Output is correct
49 Correct 698 ms 2152 KB Output is correct
50 Correct 686 ms 2124 KB Output is correct
51 Correct 681 ms 2252 KB Output is correct
52 Correct 684 ms 2292 KB Output is correct
53 Correct 640 ms 2392 KB Output is correct
54 Correct 608 ms 2476 KB Output is correct
55 Correct 632 ms 2404 KB Output is correct
56 Correct 631 ms 2492 KB Output is correct
57 Correct 655 ms 1828 KB Output is correct
58 Correct 547 ms 1132 KB Output is correct
59 Correct 725 ms 2296 KB Output is correct
60 Correct 827 ms 1132 KB Output is correct
61 Correct 567 ms 2840 KB Output is correct
62 Correct 503 ms 3244 KB Output is correct
63 Correct 472 ms 3500 KB Output is correct
64 Correct 484 ms 3332 KB Output is correct
65 Correct 620 ms 2536 KB Output is correct
66 Correct 633 ms 2472 KB Output is correct
67 Correct 572 ms 3060 KB Output is correct
68 Correct 615 ms 2968 KB Output is correct
69 Correct 698 ms 2124 KB Output is correct
70 Correct 690 ms 2252 KB Output is correct
71 Correct 706 ms 2124 KB Output is correct
72 Correct 714 ms 2120 KB Output is correct
73 Correct 640 ms 2492 KB Output is correct
74 Correct 589 ms 2700 KB Output is correct
75 Correct 446 ms 3612 KB Output is correct
76 Correct 456 ms 3332 KB Output is correct
77 Correct 617 ms 2392 KB Output is correct
78 Correct 619 ms 2660 KB Output is correct
79 Correct 627 ms 2520 KB Output is correct
80 Correct 614 ms 2460 KB Output is correct
81 Correct 630 ms 2872 KB Output is correct
82 Correct 630 ms 2364 KB Output is correct
83 Correct 624 ms 2828 KB Output is correct
84 Correct 610 ms 2864 KB Output is correct
85 Correct 562 ms 3160 KB Output is correct
86 Correct 549 ms 3000 KB Output is correct
87 Correct 606 ms 2800 KB Output is correct
88 Correct 635 ms 2464 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 9 ms 492 KB Output is correct
4 Correct 10 ms 492 KB Output is correct
5 Correct 10 ms 492 KB Output is correct
6 Correct 10 ms 492 KB Output is correct
7 Correct 10 ms 492 KB Output is correct
8 Correct 8 ms 492 KB Output is correct
9 Correct 8 ms 492 KB Output is correct
10 Correct 5 ms 492 KB Output is correct
11 Correct 18 ms 492 KB Output is correct
12 Correct 18 ms 492 KB Output is correct
13 Correct 7 ms 492 KB Output is correct
14 Correct 11 ms 492 KB Output is correct
15 Correct 13 ms 492 KB Output is correct
16 Correct 9 ms 492 KB Output is correct
17 Correct 10 ms 492 KB Output is correct
18 Correct 5 ms 492 KB Output is correct
19 Correct 10 ms 492 KB Output is correct
20 Correct 10 ms 500 KB Output is correct
21 Correct 703 ms 2128 KB Output is correct
22 Correct 700 ms 2124 KB Output is correct
23 Correct 688 ms 2124 KB Output is correct
24 Correct 731 ms 2224 KB Output is correct
25 Correct 491 ms 3380 KB Output is correct
26 Correct 476 ms 3400 KB Output is correct
27 Correct 720 ms 2204 KB Output is correct
28 Correct 684 ms 2116 KB Output is correct
29 Correct 686 ms 2124 KB Output is correct
30 Correct 805 ms 1400 KB Output is correct
31 Correct 604 ms 1900 KB Output is correct
32 Correct 689 ms 2588 KB Output is correct
33 Correct 359 ms 2520 KB Output is correct
34 Correct 348 ms 2400 KB Output is correct
35 Correct 360 ms 2744 KB Output is correct
36 Correct 354 ms 2392 KB Output is correct
37 Correct 502 ms 2640 KB Output is correct
38 Correct 455 ms 2256 KB Output is correct
39 Correct 498 ms 2404 KB Output is correct
40 Correct 464 ms 3360 KB Output is correct
41 Correct 454 ms 3484 KB Output is correct
42 Correct 429 ms 3020 KB Output is correct
43 Correct 374 ms 2412 KB Output is correct
44 Correct 417 ms 3008 KB Output is correct
45 Correct 388 ms 2848 KB Output is correct
46 Correct 359 ms 2784 KB Output is correct
47 Correct 350 ms 2492 KB Output is correct
48 Correct 352 ms 2452 KB Output is correct
49 Correct 421 ms 2124 KB Output is correct
50 Correct 428 ms 2252 KB Output is correct
51 Correct 425 ms 2124 KB Output is correct
52 Correct 433 ms 2124 KB Output is correct
53 Correct 370 ms 2924 KB Output is correct
54 Correct 398 ms 2740 KB Output is correct
55 Correct 401 ms 2968 KB Output is correct
56 Correct 402 ms 2796 KB Output is correct
57 Correct 353 ms 2392 KB Output is correct
58 Correct 344 ms 2392 KB Output is correct
59 Correct 363 ms 2392 KB Output is correct
60 Correct 349 ms 2536 KB Output is correct
61 Correct 408 ms 2876 KB Output is correct
62 Correct 401 ms 2872 KB Output is correct
63 Correct 435 ms 3268 KB Output is correct
64 Correct 436 ms 3128 KB Output is correct
65 Correct 390 ms 3260 KB Output is correct
66 Correct 357 ms 2492 KB Output is correct
67 Correct 376 ms 3004 KB Output is correct
68 Correct 403 ms 3032 KB Output is correct
69 Correct 631 ms 2404 KB Output is correct
70 Correct 616 ms 2392 KB Output is correct
71 Correct 620 ms 2364 KB Output is correct
72 Correct 615 ms 2392 KB Output is correct
73 Correct 594 ms 2744 KB Output is correct
74 Correct 606 ms 1532 KB Output is correct
75 Correct 570 ms 2960 KB Output is correct
76 Correct 773 ms 1436 KB Output is correct
77 Correct 630 ms 2588 KB Output is correct
78 Correct 547 ms 3172 KB Output is correct
79 Correct 641 ms 2464 KB Output is correct
80 Correct 456 ms 3296 KB Output is correct
81 Correct 575 ms 2840 KB Output is correct
82 Correct 631 ms 2680 KB Output is correct
83 Correct 495 ms 3472 KB Output is correct
84 Correct 562 ms 3048 KB Output is correct
85 Correct 698 ms 2152 KB Output is correct
86 Correct 686 ms 2124 KB Output is correct
87 Correct 681 ms 2252 KB Output is correct
88 Correct 684 ms 2292 KB Output is correct
89 Correct 640 ms 2392 KB Output is correct
90 Correct 608 ms 2476 KB Output is correct
91 Correct 632 ms 2404 KB Output is correct
92 Correct 631 ms 2492 KB Output is correct
93 Correct 655 ms 1828 KB Output is correct
94 Correct 547 ms 1132 KB Output is correct
95 Correct 725 ms 2296 KB Output is correct
96 Correct 827 ms 1132 KB Output is correct
97 Correct 567 ms 2840 KB Output is correct
98 Correct 503 ms 3244 KB Output is correct
99 Correct 472 ms 3500 KB Output is correct
100 Correct 484 ms 3332 KB Output is correct
101 Correct 620 ms 2536 KB Output is correct
102 Correct 633 ms 2472 KB Output is correct
103 Correct 572 ms 3060 KB Output is correct
104 Correct 615 ms 2968 KB Output is correct
105 Correct 698 ms 2124 KB Output is correct
106 Correct 690 ms 2252 KB Output is correct
107 Correct 706 ms 2124 KB Output is correct
108 Correct 714 ms 2120 KB Output is correct
109 Correct 640 ms 2492 KB Output is correct
110 Correct 589 ms 2700 KB Output is correct
111 Correct 446 ms 3612 KB Output is correct
112 Correct 456 ms 3332 KB Output is correct
113 Correct 617 ms 2392 KB Output is correct
114 Correct 619 ms 2660 KB Output is correct
115 Correct 627 ms 2520 KB Output is correct
116 Correct 614 ms 2460 KB Output is correct
117 Correct 630 ms 2872 KB Output is correct
118 Correct 630 ms 2364 KB Output is correct
119 Correct 624 ms 2828 KB Output is correct
120 Correct 610 ms 2864 KB Output is correct
121 Correct 562 ms 3160 KB Output is correct
122 Correct 549 ms 3000 KB Output is correct
123 Correct 606 ms 2800 KB Output is correct
124 Correct 635 ms 2464 KB Output is correct
125 Correct 1708 ms 3932 KB Output is correct
126 Correct 1692 ms 3804 KB Output is correct
127 Correct 1715 ms 3760 KB Output is correct
128 Correct 1692 ms 3932 KB Output is correct
129 Correct 1695 ms 3752 KB Output is correct
130 Correct 1701 ms 3736 KB Output is correct
131 Correct 1444 ms 2284 KB Output is correct
132 Correct 2121 ms 3544 KB Output is correct
133 Correct 2189 ms 4452 KB Output is correct
134 Correct 1792 ms 2568 KB Output is correct
135 Correct 2074 ms 4880 KB Output is correct
136 Correct 1140 ms 1388 KB Output is correct
137 Correct 1753 ms 6212 KB Output is correct
138 Correct 1866 ms 5564 KB Output is correct
139 Correct 1829 ms 5960 KB Output is correct
140 Correct 1772 ms 5932 KB Output is correct
141 Correct 1819 ms 5624 KB Output is correct
142 Correct 1772 ms 4880 KB Output is correct
143 Correct 1849 ms 5088 KB Output is correct
144 Correct 1728 ms 4808 KB Output is correct
145 Correct 1788 ms 5980 KB Output is correct
146 Correct 1875 ms 5136 KB Output is correct
147 Correct 1828 ms 4968 KB Output is correct
148 Correct 1843 ms 4772 KB Output is correct
149 Correct 2195 ms 3700 KB Output is correct
150 Correct 2194 ms 3720 KB Output is correct
151 Correct 2172 ms 5128 KB Output is correct
152 Correct 2280 ms 5056 KB Output is correct
153 Correct 2192 ms 4892 KB Output is correct
154 Correct 2174 ms 4872 KB Output is correct
155 Correct 1814 ms 6532 KB Output is correct
156 Correct 1894 ms 6240 KB Output is correct
157 Correct 1791 ms 7492 KB Output is correct
158 Correct 1803 ms 7624 KB Output is correct
159 Correct 1865 ms 6764 KB Output is correct
160 Correct 1902 ms 6536 KB Output is correct
161 Correct 1716 ms 4928 KB Output is correct
162 Correct 1729 ms 5004 KB Output is correct
163 Correct 1697 ms 4964 KB Output is correct
164 Correct 1730 ms 4912 KB Output is correct
165 Correct 1687 ms 4960 KB Output is correct
166 Correct 1702 ms 5092 KB Output is correct
167 Correct 1759 ms 7524 KB Output is correct
168 Correct 1762 ms 7520 KB Output is correct
169 Correct 1803 ms 7068 KB Output is correct
170 Correct 1812 ms 7012 KB Output is correct
171 Correct 1874 ms 6668 KB Output is correct
172 Correct 1902 ms 6028 KB Output is correct
173 Correct 1780 ms 7052 KB Output is correct
174 Correct 1854 ms 6152 KB Output is correct
175 Correct 1890 ms 7004 KB Output is correct
176 Correct 1876 ms 5888 KB Output is correct
177 Correct 1924 ms 6416 KB Output is correct
178 Correct 1861 ms 6384 KB Output is correct