Submission #683939

# Submission time Handle Problem Language Result Execution time Memory
683939 2023-01-19T17:03:54 Z acm Segments (IZhO18_segments) C++17
100 / 100
1400 ms 11448 KB
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2")
#include <bits/stdc++.h>
#include <emmintrin.h>
#include <x86intrin.h>
#define speed                   \
  ios_base::sync_with_stdio(0); \
  cin.tie(0);                   \
  cout.tie(0);
#define precision     \
  cout.precision(30); \
  cerr.precision(10);
#define ll long long
#define ld long double
#define pb(x) push_back(x)
#define sz(x) (int)x.size()
#define mp(x, y) make_pair(x, y)
#define all(x) x.begin(), x.end()
#define pc(x) __builtin_popcount(x)
#define pcll(x) __builtin_popcountll(x)
#define F first
#define S second
using namespace std;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
void ioi(string name) {
  freopen((name + ".in").c_str(), "r", stdin);
  freopen((name + ".out").c_str(), "w", stdout);
}
const int bl = 900;
int n, m, g, t, sz, lastans, a[2][200005], b[2][200005], c[2][200005],
    pos[200005];
pair<int, int> d[bl + 5], e[200005];
inline int kek(int l, int r, int x) {
  int new_ans = 0;
#pragma GCC ivdep
  for (int i = 1; i <= sz; i++)
    new_ans +=
        c[0][d[i].S] <= r - x + 1 && c[1][d[i].S] >= l + x - 1 && x <= d[i].F;
  int p = lower_bound(e + 1, e + m + 1, mp(x, 0)) - e;
  p = m - p + 1;
  l += x - 1;
  r -= x - 1;
  swap(l, r);
  __m256i vl = _mm256_set1_epi32(l);
  __m256i vr = _mm256_set1_epi32(r);
  __m256i vzero = _mm256_setzero_si256();
  __m256i vacc = _mm256_setzero_si256();
  int i = 0;
  for (; i < p - 7; i += 8) {
    __m256i vb0 = _mm256_loadu_si256((__m256i*)&b[0][i]);
    __m256i vb1 = _mm256_loadu_si256((__m256i*)&b[1][i]);
    __m256i vcmp0 = _mm256_cmpgt_epi32(vl, vb0);
    __m256i vcmp1 = _mm256_cmpgt_epi32(vb1, vr);
    __m256i vand = _mm256_and_si256(vcmp0, vcmp1);
    vacc = _mm256_add_epi32(vacc, vand);
  }
  for (; i < p; i++) new_ans += b[0][i] < l && r < b[1][i];
  int accumulator[8];
  _mm256_storeu_si256((__m256i*)accumulator, vacc);
  new_ans -= accumulator[0] + accumulator[1] + accumulator[2] + accumulator[3] +
             accumulator[4] + accumulator[5] + accumulator[6] + accumulator[7];
  return new_ans;
}
void mrg() {
  pair<int, int> tmp[sz + m + 5];
  merge(e + 1, e + m + 1, d + 1, d + sz + 1, tmp + 1);
  m += sz;
  sz = 0;
  for (int i = 1; i <= m; i++) e[i] = tmp[i];
}
void bld() {
  sort(d + 1, d + sz + 1);
  mrg();
  for (int i = 1; i <= m; i++)
    b[0][m - i] = c[0][e[i].S] - 1, b[1][m - i] = c[1][e[i].S] + 1,
             pos[e[i].S] = m - i;
}
int main() {
  speed;
  precision;
  // code
  memset(pos, -1, sizeof pos);
  cin >> n >> t;
  for (int i = 1; i <= n; i++) {
    int type, l, r, x;
    cin >> type;
    if (type == 1) {
      cin >> l >> r;
      l ^= t * lastans;
      r ^= t * lastans;
      if (l > r) swap(l, r);
      ++g;
      c[0][g] = l;
      c[1][g] = r;
      d[++sz] = mp(r - l + 1, g);
    }
    if (type == 2) {
      cin >> x;
      c[0][x] = 1e9;
      c[1][x] = -1e9;
      if (~pos[x]) {
        b[0][pos[x]] = 1e9;
        b[1][pos[x]] = -1e9;
      }
    }
    if (type == 3) {
      cin >> l >> r >> x;
      l ^= t * lastans;
      r ^= t * lastans;
      if (l > r) swap(l, r);
      cout << (lastans = kek(l, r, x)) << "\n";
    }
    if (bl <= sz) bld();
  }
  // endl
#ifndef ONLINE_JUDGE
  cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
  return 0;
}

Compilation message

segments.cpp: In function 'int kek(int, int, int)':
segments.cpp:46:11: warning: unused variable 'vzero' [-Wunused-variable]
   46 |   __m256i vzero = _mm256_setzero_si256();
      |           ^~~~~
segments.cpp: In function 'void ioi(std::string)':
segments.cpp:26:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |   freopen((name + ".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
segments.cpp:27:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |   freopen((name + ".out").c_str(), "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1108 KB Output is correct
2 Correct 1 ms 1108 KB Output is correct
3 Correct 4 ms 1236 KB Output is correct
4 Correct 4 ms 1272 KB Output is correct
5 Correct 6 ms 1268 KB Output is correct
6 Correct 5 ms 1376 KB Output is correct
7 Correct 6 ms 1260 KB Output is correct
8 Correct 6 ms 1236 KB Output is correct
9 Correct 4 ms 1236 KB Output is correct
10 Correct 3 ms 1364 KB Output is correct
11 Correct 10 ms 1340 KB Output is correct
12 Correct 11 ms 1456 KB Output is correct
13 Correct 3 ms 1364 KB Output is correct
14 Correct 5 ms 1244 KB Output is correct
15 Correct 3 ms 1236 KB Output is correct
16 Correct 3 ms 1264 KB Output is correct
17 Correct 6 ms 1304 KB Output is correct
18 Correct 3 ms 1364 KB Output is correct
19 Correct 6 ms 1264 KB Output is correct
20 Correct 6 ms 1236 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 409 ms 5952 KB Output is correct
2 Correct 419 ms 5660 KB Output is correct
3 Correct 402 ms 5624 KB Output is correct
4 Correct 340 ms 5692 KB Output is correct
5 Correct 150 ms 6368 KB Output is correct
6 Correct 103 ms 6348 KB Output is correct
7 Correct 406 ms 5636 KB Output is correct
8 Correct 411 ms 5532 KB Output is correct
9 Correct 381 ms 5568 KB Output is correct
10 Correct 356 ms 5192 KB Output is correct
11 Correct 269 ms 5152 KB Output is correct
12 Correct 286 ms 6020 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 134 ms 4052 KB Output is correct
2 Correct 148 ms 4052 KB Output is correct
3 Correct 156 ms 4092 KB Output is correct
4 Correct 130 ms 4072 KB Output is correct
5 Correct 398 ms 5792 KB Output is correct
6 Correct 468 ms 5540 KB Output is correct
7 Correct 472 ms 5660 KB Output is correct
8 Correct 148 ms 6332 KB Output is correct
9 Correct 114 ms 6128 KB Output is correct
10 Correct 228 ms 5616 KB Output is correct
11 Correct 184 ms 4216 KB Output is correct
12 Correct 193 ms 5600 KB Output is correct
13 Correct 207 ms 5476 KB Output is correct
14 Correct 249 ms 4720 KB Output is correct
15 Correct 229 ms 4604 KB Output is correct
16 Correct 229 ms 4412 KB Output is correct
17 Correct 517 ms 5296 KB Output is correct
18 Correct 629 ms 5300 KB Output is correct
19 Correct 504 ms 5196 KB Output is correct
20 Correct 540 ms 5308 KB Output is correct
21 Correct 181 ms 4292 KB Output is correct
22 Correct 253 ms 5064 KB Output is correct
23 Correct 233 ms 5284 KB Output is correct
24 Correct 239 ms 5164 KB Output is correct
25 Correct 140 ms 4016 KB Output is correct
26 Correct 131 ms 4068 KB Output is correct
27 Correct 132 ms 3996 KB Output is correct
28 Correct 137 ms 4028 KB Output is correct
29 Correct 241 ms 5416 KB Output is correct
30 Correct 228 ms 5324 KB Output is correct
31 Correct 112 ms 6228 KB Output is correct
32 Correct 214 ms 5584 KB Output is correct
33 Correct 210 ms 5448 KB Output is correct
34 Correct 229 ms 4616 KB Output is correct
35 Correct 235 ms 5388 KB Output is correct
36 Correct 201 ms 5564 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 109 ms 4264 KB Output is correct
2 Correct 116 ms 4220 KB Output is correct
3 Correct 113 ms 4272 KB Output is correct
4 Correct 132 ms 4228 KB Output is correct
5 Correct 271 ms 6076 KB Output is correct
6 Correct 254 ms 4884 KB Output is correct
7 Correct 256 ms 6092 KB Output is correct
8 Correct 501 ms 5048 KB Output is correct
9 Correct 203 ms 5096 KB Output is correct
10 Correct 157 ms 5852 KB Output is correct
11 Correct 190 ms 4784 KB Output is correct
12 Correct 86 ms 6336 KB Output is correct
13 Correct 205 ms 5504 KB Output is correct
14 Correct 226 ms 5116 KB Output is correct
15 Correct 123 ms 6264 KB Output is correct
16 Correct 195 ms 5668 KB Output is correct
17 Correct 398 ms 5608 KB Output is correct
18 Correct 424 ms 5604 KB Output is correct
19 Correct 409 ms 5620 KB Output is correct
20 Correct 403 ms 5632 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1108 KB Output is correct
2 Correct 1 ms 1108 KB Output is correct
3 Correct 4 ms 1236 KB Output is correct
4 Correct 4 ms 1272 KB Output is correct
5 Correct 6 ms 1268 KB Output is correct
6 Correct 5 ms 1376 KB Output is correct
7 Correct 6 ms 1260 KB Output is correct
8 Correct 6 ms 1236 KB Output is correct
9 Correct 4 ms 1236 KB Output is correct
10 Correct 3 ms 1364 KB Output is correct
11 Correct 10 ms 1340 KB Output is correct
12 Correct 11 ms 1456 KB Output is correct
13 Correct 3 ms 1364 KB Output is correct
14 Correct 5 ms 1244 KB Output is correct
15 Correct 3 ms 1236 KB Output is correct
16 Correct 3 ms 1264 KB Output is correct
17 Correct 6 ms 1304 KB Output is correct
18 Correct 3 ms 1364 KB Output is correct
19 Correct 6 ms 1264 KB Output is correct
20 Correct 6 ms 1236 KB Output is correct
21 Correct 409 ms 5952 KB Output is correct
22 Correct 419 ms 5660 KB Output is correct
23 Correct 402 ms 5624 KB Output is correct
24 Correct 340 ms 5692 KB Output is correct
25 Correct 150 ms 6368 KB Output is correct
26 Correct 103 ms 6348 KB Output is correct
27 Correct 406 ms 5636 KB Output is correct
28 Correct 411 ms 5532 KB Output is correct
29 Correct 381 ms 5568 KB Output is correct
30 Correct 356 ms 5192 KB Output is correct
31 Correct 269 ms 5152 KB Output is correct
32 Correct 286 ms 6020 KB Output is correct
33 Correct 109 ms 4264 KB Output is correct
34 Correct 116 ms 4220 KB Output is correct
35 Correct 113 ms 4272 KB Output is correct
36 Correct 132 ms 4228 KB Output is correct
37 Correct 271 ms 6076 KB Output is correct
38 Correct 254 ms 4884 KB Output is correct
39 Correct 256 ms 6092 KB Output is correct
40 Correct 501 ms 5048 KB Output is correct
41 Correct 203 ms 5096 KB Output is correct
42 Correct 157 ms 5852 KB Output is correct
43 Correct 190 ms 4784 KB Output is correct
44 Correct 86 ms 6336 KB Output is correct
45 Correct 205 ms 5504 KB Output is correct
46 Correct 226 ms 5116 KB Output is correct
47 Correct 123 ms 6264 KB Output is correct
48 Correct 195 ms 5668 KB Output is correct
49 Correct 398 ms 5608 KB Output is correct
50 Correct 424 ms 5604 KB Output is correct
51 Correct 409 ms 5620 KB Output is correct
52 Correct 403 ms 5632 KB Output is correct
53 Correct 112 ms 4296 KB Output is correct
54 Correct 120 ms 4224 KB Output is correct
55 Correct 119 ms 4256 KB Output is correct
56 Correct 111 ms 4228 KB Output is correct
57 Correct 377 ms 5448 KB Output is correct
58 Correct 167 ms 4892 KB Output is correct
59 Correct 307 ms 5836 KB Output is correct
60 Correct 200 ms 4852 KB Output is correct
61 Correct 205 ms 5536 KB Output is correct
62 Correct 114 ms 6092 KB Output is correct
63 Correct 106 ms 6216 KB Output is correct
64 Correct 130 ms 6140 KB Output is correct
65 Correct 216 ms 4752 KB Output is correct
66 Correct 217 ms 4608 KB Output is correct
67 Correct 192 ms 5580 KB Output is correct
68 Correct 215 ms 5324 KB Output is correct
69 Correct 400 ms 5580 KB Output is correct
70 Correct 394 ms 5636 KB Output is correct
71 Correct 390 ms 5588 KB Output is correct
72 Correct 418 ms 5604 KB Output is correct
73 Correct 195 ms 4828 KB Output is correct
74 Correct 213 ms 5380 KB Output is correct
75 Correct 74 ms 6348 KB Output is correct
76 Correct 95 ms 6236 KB Output is correct
77 Correct 109 ms 4280 KB Output is correct
78 Correct 123 ms 4244 KB Output is correct
79 Correct 111 ms 4280 KB Output is correct
80 Correct 110 ms 4208 KB Output is correct
81 Correct 211 ms 5252 KB Output is correct
82 Correct 200 ms 4860 KB Output is correct
83 Correct 184 ms 4556 KB Output is correct
84 Correct 196 ms 5312 KB Output is correct
85 Correct 198 ms 5684 KB Output is correct
86 Correct 201 ms 5728 KB Output is correct
87 Correct 240 ms 5076 KB Output is correct
88 Correct 245 ms 4628 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1108 KB Output is correct
2 Correct 1 ms 1108 KB Output is correct
3 Correct 4 ms 1236 KB Output is correct
4 Correct 4 ms 1272 KB Output is correct
5 Correct 6 ms 1268 KB Output is correct
6 Correct 5 ms 1376 KB Output is correct
7 Correct 6 ms 1260 KB Output is correct
8 Correct 6 ms 1236 KB Output is correct
9 Correct 4 ms 1236 KB Output is correct
10 Correct 3 ms 1364 KB Output is correct
11 Correct 10 ms 1340 KB Output is correct
12 Correct 11 ms 1456 KB Output is correct
13 Correct 3 ms 1364 KB Output is correct
14 Correct 5 ms 1244 KB Output is correct
15 Correct 3 ms 1236 KB Output is correct
16 Correct 3 ms 1264 KB Output is correct
17 Correct 6 ms 1304 KB Output is correct
18 Correct 3 ms 1364 KB Output is correct
19 Correct 6 ms 1264 KB Output is correct
20 Correct 6 ms 1236 KB Output is correct
21 Correct 409 ms 5952 KB Output is correct
22 Correct 419 ms 5660 KB Output is correct
23 Correct 402 ms 5624 KB Output is correct
24 Correct 340 ms 5692 KB Output is correct
25 Correct 150 ms 6368 KB Output is correct
26 Correct 103 ms 6348 KB Output is correct
27 Correct 406 ms 5636 KB Output is correct
28 Correct 411 ms 5532 KB Output is correct
29 Correct 381 ms 5568 KB Output is correct
30 Correct 356 ms 5192 KB Output is correct
31 Correct 269 ms 5152 KB Output is correct
32 Correct 286 ms 6020 KB Output is correct
33 Correct 134 ms 4052 KB Output is correct
34 Correct 148 ms 4052 KB Output is correct
35 Correct 156 ms 4092 KB Output is correct
36 Correct 130 ms 4072 KB Output is correct
37 Correct 398 ms 5792 KB Output is correct
38 Correct 468 ms 5540 KB Output is correct
39 Correct 472 ms 5660 KB Output is correct
40 Correct 148 ms 6332 KB Output is correct
41 Correct 114 ms 6128 KB Output is correct
42 Correct 228 ms 5616 KB Output is correct
43 Correct 184 ms 4216 KB Output is correct
44 Correct 193 ms 5600 KB Output is correct
45 Correct 207 ms 5476 KB Output is correct
46 Correct 249 ms 4720 KB Output is correct
47 Correct 229 ms 4604 KB Output is correct
48 Correct 229 ms 4412 KB Output is correct
49 Correct 517 ms 5296 KB Output is correct
50 Correct 629 ms 5300 KB Output is correct
51 Correct 504 ms 5196 KB Output is correct
52 Correct 540 ms 5308 KB Output is correct
53 Correct 181 ms 4292 KB Output is correct
54 Correct 253 ms 5064 KB Output is correct
55 Correct 233 ms 5284 KB Output is correct
56 Correct 239 ms 5164 KB Output is correct
57 Correct 140 ms 4016 KB Output is correct
58 Correct 131 ms 4068 KB Output is correct
59 Correct 132 ms 3996 KB Output is correct
60 Correct 137 ms 4028 KB Output is correct
61 Correct 241 ms 5416 KB Output is correct
62 Correct 228 ms 5324 KB Output is correct
63 Correct 112 ms 6228 KB Output is correct
64 Correct 214 ms 5584 KB Output is correct
65 Correct 210 ms 5448 KB Output is correct
66 Correct 229 ms 4616 KB Output is correct
67 Correct 235 ms 5388 KB Output is correct
68 Correct 201 ms 5564 KB Output is correct
69 Correct 109 ms 4264 KB Output is correct
70 Correct 116 ms 4220 KB Output is correct
71 Correct 113 ms 4272 KB Output is correct
72 Correct 132 ms 4228 KB Output is correct
73 Correct 271 ms 6076 KB Output is correct
74 Correct 254 ms 4884 KB Output is correct
75 Correct 256 ms 6092 KB Output is correct
76 Correct 501 ms 5048 KB Output is correct
77 Correct 203 ms 5096 KB Output is correct
78 Correct 157 ms 5852 KB Output is correct
79 Correct 190 ms 4784 KB Output is correct
80 Correct 86 ms 6336 KB Output is correct
81 Correct 205 ms 5504 KB Output is correct
82 Correct 226 ms 5116 KB Output is correct
83 Correct 123 ms 6264 KB Output is correct
84 Correct 195 ms 5668 KB Output is correct
85 Correct 398 ms 5608 KB Output is correct
86 Correct 424 ms 5604 KB Output is correct
87 Correct 409 ms 5620 KB Output is correct
88 Correct 403 ms 5632 KB Output is correct
89 Correct 112 ms 4296 KB Output is correct
90 Correct 120 ms 4224 KB Output is correct
91 Correct 119 ms 4256 KB Output is correct
92 Correct 111 ms 4228 KB Output is correct
93 Correct 377 ms 5448 KB Output is correct
94 Correct 167 ms 4892 KB Output is correct
95 Correct 307 ms 5836 KB Output is correct
96 Correct 200 ms 4852 KB Output is correct
97 Correct 205 ms 5536 KB Output is correct
98 Correct 114 ms 6092 KB Output is correct
99 Correct 106 ms 6216 KB Output is correct
100 Correct 130 ms 6140 KB Output is correct
101 Correct 216 ms 4752 KB Output is correct
102 Correct 217 ms 4608 KB Output is correct
103 Correct 192 ms 5580 KB Output is correct
104 Correct 215 ms 5324 KB Output is correct
105 Correct 400 ms 5580 KB Output is correct
106 Correct 394 ms 5636 KB Output is correct
107 Correct 390 ms 5588 KB Output is correct
108 Correct 418 ms 5604 KB Output is correct
109 Correct 195 ms 4828 KB Output is correct
110 Correct 213 ms 5380 KB Output is correct
111 Correct 74 ms 6348 KB Output is correct
112 Correct 95 ms 6236 KB Output is correct
113 Correct 109 ms 4280 KB Output is correct
114 Correct 123 ms 4244 KB Output is correct
115 Correct 111 ms 4280 KB Output is correct
116 Correct 110 ms 4208 KB Output is correct
117 Correct 211 ms 5252 KB Output is correct
118 Correct 200 ms 4860 KB Output is correct
119 Correct 184 ms 4556 KB Output is correct
120 Correct 196 ms 5312 KB Output is correct
121 Correct 198 ms 5684 KB Output is correct
122 Correct 201 ms 5728 KB Output is correct
123 Correct 240 ms 5076 KB Output is correct
124 Correct 245 ms 4628 KB Output is correct
125 Correct 341 ms 7536 KB Output is correct
126 Correct 360 ms 7520 KB Output is correct
127 Correct 349 ms 7508 KB Output is correct
128 Correct 376 ms 7440 KB Output is correct
129 Correct 345 ms 7500 KB Output is correct
130 Correct 356 ms 7708 KB Output is correct
131 Correct 522 ms 8720 KB Output is correct
132 Correct 1400 ms 10092 KB Output is correct
133 Correct 1261 ms 10692 KB Output is correct
134 Correct 752 ms 8984 KB Output is correct
135 Correct 1237 ms 10860 KB Output is correct
136 Correct 822 ms 8264 KB Output is correct
137 Correct 369 ms 11300 KB Output is correct
138 Correct 630 ms 9908 KB Output is correct
139 Correct 580 ms 10612 KB Output is correct
140 Correct 408 ms 11088 KB Output is correct
141 Correct 567 ms 10236 KB Output is correct
142 Correct 473 ms 7856 KB Output is correct
143 Correct 701 ms 8444 KB Output is correct
144 Correct 490 ms 7676 KB Output is correct
145 Correct 476 ms 11176 KB Output is correct
146 Correct 799 ms 9180 KB Output is correct
147 Correct 754 ms 8524 KB Output is correct
148 Correct 672 ms 8328 KB Output is correct
149 Correct 1220 ms 10276 KB Output is correct
150 Correct 1224 ms 10168 KB Output is correct
151 Correct 1281 ms 10188 KB Output is correct
152 Correct 1212 ms 10408 KB Output is correct
153 Correct 1183 ms 10192 KB Output is correct
154 Correct 1316 ms 10232 KB Output is correct
155 Correct 539 ms 8076 KB Output is correct
156 Correct 674 ms 8588 KB Output is correct
157 Correct 418 ms 11128 KB Output is correct
158 Correct 400 ms 11300 KB Output is correct
159 Correct 654 ms 9944 KB Output is correct
160 Correct 696 ms 9116 KB Output is correct
161 Correct 347 ms 7524 KB Output is correct
162 Correct 347 ms 7460 KB Output is correct
163 Correct 345 ms 7468 KB Output is correct
164 Correct 351 ms 7508 KB Output is correct
165 Correct 351 ms 7500 KB Output is correct
166 Correct 352 ms 7504 KB Output is correct
167 Correct 312 ms 11448 KB Output is correct
168 Correct 316 ms 11436 KB Output is correct
169 Correct 438 ms 11028 KB Output is correct
170 Correct 462 ms 10848 KB Output is correct
171 Correct 605 ms 10316 KB Output is correct
172 Correct 673 ms 9008 KB Output is correct
173 Correct 435 ms 11056 KB Output is correct
174 Correct 830 ms 8988 KB Output is correct
175 Correct 650 ms 10332 KB Output is correct
176 Correct 731 ms 8344 KB Output is correct
177 Correct 701 ms 9912 KB Output is correct
178 Correct 774 ms 9724 KB Output is correct