답안 #777612

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
777612 2023-07-09T11:19:42 Z Sam_a17 새 집 (APIO18_new_home) C++17
47 / 100
2015 ms 847560 KB
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
//#include "temp.cpp"
#include <cstdio>
using namespace std;
 
#ifndef ONLINE_JUDGE
#define dbg(x) cerr << #x <<" "; print(x); cerr << endl;
#else
#define dbg(x)
#endif
 
#define sz(x) (int)x.size()
#define len(x) (int)x.length()
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define clr(x) (x).clear()
#define uniq(x) x.resize(unique(all(x)) - x.begin());
#define blt __builtin_popcount
 
#define pb push_back
#define popf pop_front
#define popb pop_back
#define ld long double
#define ll long long
 
void print(long long t) {cerr << t;}
void print(int t) {cerr << t;}
void print(string t) {cerr << t;}
void print(char t) {cerr << t;}
void print(double t) {cerr << t;}
void print(long double t) {cerr << t;}
void print(unsigned long long t) {cerr << t;}
 
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
#define nl '\n'
 
// Indexed Set  
template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
 
template <class T, class V> void print(pair <T, V> p);
template <class T> void print(vector <T> v);
template <class T> void print(set <T> v);
template <class T, class V> void print(map <T, V> v);
template <class T> void print(multiset <T> v);
template <class T, class V> void print(T v[],V n) {cerr << "["; for(int i = 0; i < n; i++) {print(v[i]); cerr << " "; } cerr << "]";}
template <class T, class V> void print(pair <T, V> p) {cerr << "{"; print(p.first); cerr << ","; print(p.second); cerr << "}";}
template <class T> void print(vector <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
// template <class T> void print(vector <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(set <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(multiset <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(Tree <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void print(map <T, V> v) {cerr << "[ "; for (auto i : v) {print(i); cerr << " ";} cerr << "]";}
template <class T> void print(deque <T> v) {cerr << "[ "; for (T i : v) {print(i); cerr << " ";} cerr << "]";}
 
 
// for random generations
mt19937 myrand(chrono::steady_clock::now().time_since_epoch().count());
// mt19937 myrand(131);
 
// for grid problems
int dx[8] = {-1,0,1,0,1,-1,1,-1};
int dy[8] = {0,1,0,-1,1,1,-1,-1};
 
// lowest / (1 << 17) >= 1e5 / (1 << 18) >= 2e5 / (1 << 21) >= 1e6
void fastIO() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr); cout.tie(nullptr);
}
// file in/out
void setIO(string str = "") {
  fastIO();
 
  // if(str == "input") {
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
  // } else if(str != "") {
    // freopen((str + ".in").c_str(), "r", stdin);
    // freopen((str + ".out").c_str(), "w", stdout);
  // }
}
 
const int N = 1e6 + 10, maxM = 3e5 + 10, inf = 1e8, infi = 2e9 + 10;
vector<pair<pair<int, int>, int>> to_add[N];
int n, k, q;
 
struct node {
  int x, t, a, b;
};
 
vector<node> cand;

struct segTreeMax {  // Range Queries
  multiset<int> mt[2 * N];
  vector<int> mTree;
  int size, sub;

  void init(ll n) {
    size = 1;
    while(size < n)  {
      size *= 2;
    }
    mTree.assign(2 * size - 1, 0);
  }

  void upd(int u, ll v, int x, int lx, int rx) { // set value at pos u
    if(rx - lx == 1) {
      x -= sub;
      if(v >= 0) {
        mt[x].insert(v);
      } else {
        assert(mt[x].find(-v) != mt[x].end());
        mt[x].erase(mt[x].find(-v));
      }

      if(!mt[x].empty()) {
        mTree[x + sub] = *prev(mt[x].end());
      } else {
        mTree[x + sub] = -1;
      }
      return;
    }

    int m = (lx + rx) / 2;
    if(u < m) {
      upd(u, v, 2 * x + 1, lx, m);
    }else {
      upd(u, v, 2 * x + 2, m, rx);
    }
    mTree[x] = max(mTree[2 * x + 1], mTree[2 * x + 2]);
  }

  void upd(int u, ll v) {
    upd(u, v, 0, 0, size);
  }

  int gt(int u, int x, int lx, int rx) { // set value at pos u
    if(rx - lx == 1) {
      sub = x;
      return x;
    }

    int m = (lx + rx) / 2;
    if(u < m) {
      return gt(u, 2 * x + 1, lx, m);
    }else {
      return gt(u, 2 * x + 2, m, rx);
    }
  }

  int gt(int u) {
    return gt(u, 0, 0, size);
  }

  int qry(int l, int r, int x, int lx, int rx) { // range queries
    if(l >= rx || lx >= r) {
      return -1;
    }

    if(lx >= l && r >= rx) {
      return mTree[x];
    }

    int m = (rx + lx) / 2;
    int s1 = qry(l, r, 2 * x + 1, lx, m);
    int s2 = qry(l, r, 2 * x + 2, m, rx);
    return max(s1, s2);
  }

  int qry(int l, int r) {
    return qry(l, r, 0,0,size);
  }
};

struct segTreeMin {  // Range Queries
  multiset<int> mt[N];
  vector<int> mTree;
  int size;
  int sub;

  void init(ll n) {
    size = 1;
    while(size < n)  {
      size *= 2;
    }
    mTree.assign(2 * size - 1, INT32_MAX);
  }

  int ind(int xx) {
    if(xx >= sub) {
      return xx - sub;
    } else {
      return xx;
    }
  }

  void upd(int u, ll v, int x, int lx, int rx) { // set value at pos u
    if(rx - lx == 1) {
      x -= sub;
      if(v >= 0) {
        mt[x].insert(v);
      } else {
        assert(mt[x].find(-v) != mt[x].end());
        mt[x].erase(mt[x].find(-v));
      }

      if(!mt[x].empty()) {
        mTree[x + sub] = *mt[x].begin();
      } else {
        mTree[x + sub] = INT32_MAX;
      }
      return;
    }

    int m = (lx + rx) / 2;
    if(u < m) {
      upd(u, v, 2 * x + 1, lx, m);
    }else {
      upd(u, v, 2 * x + 2, m, rx);
    }
    mTree[x] = min(mTree[2 * x + 1], mTree[2 * x + 2]);
  }

  void upd(int u, ll v) {
    upd(u, v, 0, 0, size);
  }

  int gt(int u, int x, int lx, int rx) { // set value at pos u
    if(rx - lx == 1) {
      sub = x;
      return x;
    }

    int m = (lx + rx) / 2;
    if(u < m) {
      return gt(u, 2 * x + 1, lx, m);
    }else {
      return gt(u, 2 * x + 2, m, rx);
    }
  }

  int gt(int u) {
    return gt(u, 0, 0, size);
  }

  int qry(int l, int r, int x, int lx, int rx) { // range queries
    if(l >= rx || lx >= r) {
      return INT32_MAX;
    }

    if(lx >= l && r >= rx) {
      return mTree[x];
    }

    int m = (rx + lx) / 2;
    int s1 = qry(l, r, 2 * x + 1, lx, m);
    int s2 = qry(l, r, 2 * x + 2, m, rx);
    return min(s1, s2);
  }

  int qry(int l, int r) {
    return qry(l, r, 0,0,size);
  }
};

segTreeMax rs;
segTreeMin ls;

vector<int> compress_times, compress_locations;
multiset<int> color[maxM];
map<int, int> mx_col[maxM];
int pat[maxM];

unordered_map<int, int> mapi;

int get(int val) {
  return mapi[val];
}

void add_interval(int type, int l, int r) {
  int mid = (l + r + 1) / 2;
  l = get(l);
  r = get(r);
  int midone = get(mid - 1);
  mid = get(mid);
  
  if(mid <= r) {
    rs.upd(mid, r);
  }
  if(l < mid) {
    ls.upd(midone, l);
  }
}

void del_interval(int type, int l, int r) {
  int mid = (l + r + 1) / 2;
  
  l = get(l);
  r = get(r);
  int midone = get(mid - 1);
  mid = get(mid);

  if(mid <= r) rs.upd(mid, -r);
  if(l < mid) ls.upd(midone, -l);
}

void solve_() {
  cin >> n >> k >> q;
 
  for(int i = 1; i <= n; i++) {
    int x, t, a, b; 
    cin >> x >> t >> a >> b;
    
    compress_times.push_back(a);
    compress_times.push_back(b + 1);

    compress_locations.push_back(x);

    cand.push_back({x, t, a, b});
  }

  vector<pair<int, int>> queries;
  for(int i = 1; i <= q; i++) {
    int l, y; cin >> l >> y;
    compress_locations.push_back(l);
    compress_times.push_back(y);
    queries.emplace_back(l, y);
  }

  compress_locations.push_back(-infi);
  compress_locations.push_back(infi);
  
  sort(all(compress_times));
  uniq(compress_times);


  for(auto &i: cand) {
    i.a = lower_bound(all(compress_times), i.a) - compress_times.begin();
    i.b = lower_bound(all(compress_times), i.b + 1) - compress_times.begin();

    to_add[i.a].push_back({{i.x, i.t}, 1});
    to_add[i.b].push_back({{i.x, i.t}, 2});
  } 

  for(int i = 1; i <= k; i++) {
    color[i].insert(-infi);
    color[i].insert(infi);
  }

  for(int i = 0; i < sz(compress_times); i++) {
    for(auto cc: to_add[i]) {
      if(cc.second == 1) { 
        auto j = cc.first;
        if(color[j.second].find(j.first) != color[j.second].end()) {
          mx_col[j.second][j.first]++;
          continue;
        }

        color[j.second].insert(j.first);

        mx_col[j.second][j.first] = 1;
        auto it = color[j.second].find(j.first);
        auto it_prev = prev(it), it_next = next(it);

        int mid1 = (*it_next + j.first + 1) / 2;
        int mid2 = (*it_prev + j.first + 1) / 2;
        
        compress_locations.push_back(mid1);
        compress_locations.push_back(mid1 - 1);
        
        compress_locations.push_back(mid2);
        compress_locations.push_back(mid2 - 1);
      } else if(cc.second == 2) {
        auto j = cc.first;
        mx_col[j.second][j.first]--;
        if(mx_col[j.second][j.first] == 0) {

          auto it = color[j.second].find(j.first);
          auto it_prev = prev(it), it_next = next(it);

          int mid1 = (*it_next + *it_prev + 1) / 2;
          
          compress_locations.push_back(mid1);
          compress_locations.push_back(mid1 - 1);
  
          color[j.second].erase(j.first);
        }
      } 
    }
  }

  int it = 1;
  for(auto &i: queries) {
    i.second = lower_bound(all(compress_times), i.second) - compress_times.begin();
    to_add[i.second].push_back({{i.first, it}, 0});
    it++;
  }

  sort(all(compress_locations));
  uniq(compress_locations);
  ls.init(sz(compress_locations) + 2);
  rs.init(sz(compress_locations) + 2);
  rs.gt(0);
  ls.gt(0);

  for(int i = 1; i <= k; i++) {
    color[i].clear();
    mx_col[i].clear();
    
    color[i].insert(-infi);
    color[i].insert(infi);
  }

  vector<bool> empty(k + 1, true);
  int emp = k;

  mapi.reserve(2 * sz(compress_locations) + 2);
  for(int i = 0; i < sz(compress_locations); i++) {
    mapi[compress_locations[i]] = i;
  }

  for(int i = 0; i < sz(compress_times); i++) {
    for(auto cc: to_add[i]) {
      if(cc.second == 1) { 
        auto j = cc.first;
        if(color[j.second].find(j.first) != color[j.second].end()) {
          mx_col[j.second][j.first]++;
          continue;
        }

        mx_col[j.second][j.first] = 1;
        color[j.second].insert(j.first);
        if(sz(color[j.second]) == 3) {
          assert(empty[j.second]);
          empty[j.second] = false;
          emp--;
        }

        // ete inchvor bani aranqna
        auto it = color[j.second].find(j.first);
        assert(it != color[j.second].begin());
        assert(it != prev(color[j.second].end()));
        auto it_prev = prev(it), it_next = next(it);

        int mid1 = (*it_next + j.first + 1) / 2;
        int mid2 = (*it_prev + j.first + 1) / 2;


        add_interval(j.second, *it_prev, j.first);
        add_interval(j.second, j.first, *it_next);


        if(*it_prev != -infi || *it_next != infi) {
          del_interval(j.second, *it_prev, *it_next);
        }
      } else if(cc.second == 2) {
        auto j = cc.first;
        mx_col[j.second][j.first]--;
        if(mx_col[j.second][j.first] == 0) {

          auto it = color[j.second].find(j.first);

          if(sz(color[j.second]) == 3) {
            empty[j.second] = true;
            emp++;
          }

          auto it_prev = prev(it), it_next = next(it);
          del_interval(j.second, *it_prev, j.first);
          del_interval(j.second, j.first, *it_next);

          if(*it_prev != -infi || *it_next != infi) {
            add_interval(j.second, *it_prev, *it_next);
          }

          color[j.second].erase(j.first);
        }
      } else {
        auto j = cc.first;
        if(emp) {
          pat[j.second] = -1;
        } else {
          int cur = lower_bound(all(compress_locations), j.first) - compress_locations.begin();
          int li = ls.qry(cur, sz(compress_locations) + 1);
          int ri = rs.qry(0, cur + 1);

          if(li <= cur) {
            pat[j.second] = max(pat[j.second], j.first - compress_locations[li]);
          }

          if(ri >= cur) {
            pat[j.second] = max(pat[j.second], compress_locations[ri] - j.first);
          }
        }
      }
    }
  }

  for(int i = 1; i <= q; i++) {
    cout << pat[i] << '\n';
  }
 }
 
int main() {
  setIO();
 
  auto solve = [&](int test_case)-> void {
    for(int i = 1; i <= test_case; i++) {
      solve_();
    }
  };
 
  int test_cases = 1;
  // cin >> test_cases;
  solve(test_cases);
 
  return 0;
}

Compilation message

new_home.cpp: In function 'void solve_()':
new_home.cpp:446:13: warning: unused variable 'mid1' [-Wunused-variable]
  446 |         int mid1 = (*it_next + j.first + 1) / 2;
      |             ^~~~
new_home.cpp:447:13: warning: unused variable 'mid2' [-Wunused-variable]
  447 |         int mid2 = (*it_prev + j.first + 1) / 2;
      |             ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 192848 KB Output is correct
2 Correct 80 ms 192824 KB Output is correct
3 Correct 80 ms 192832 KB Output is correct
4 Correct 79 ms 192792 KB Output is correct
5 Correct 83 ms 192960 KB Output is correct
6 Correct 82 ms 193196 KB Output is correct
7 Correct 81 ms 193144 KB Output is correct
8 Correct 80 ms 193236 KB Output is correct
9 Correct 81 ms 193208 KB Output is correct
10 Correct 85 ms 193264 KB Output is correct
11 Correct 82 ms 193196 KB Output is correct
12 Correct 81 ms 193096 KB Output is correct
13 Correct 80 ms 193116 KB Output is correct
14 Correct 92 ms 193100 KB Output is correct
15 Correct 81 ms 193180 KB Output is correct
16 Correct 83 ms 193164 KB Output is correct
17 Correct 84 ms 193140 KB Output is correct
18 Correct 80 ms 193244 KB Output is correct
19 Correct 81 ms 193264 KB Output is correct
20 Correct 81 ms 193236 KB Output is correct
21 Correct 85 ms 193144 KB Output is correct
22 Correct 81 ms 193224 KB Output is correct
23 Correct 84 ms 193272 KB Output is correct
24 Correct 83 ms 193144 KB Output is correct
25 Correct 84 ms 193200 KB Output is correct
26 Correct 82 ms 193208 KB Output is correct
27 Correct 80 ms 192904 KB Output is correct
28 Correct 81 ms 193212 KB Output is correct
29 Correct 93 ms 193120 KB Output is correct
30 Correct 82 ms 193164 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 192848 KB Output is correct
2 Correct 80 ms 192824 KB Output is correct
3 Correct 80 ms 192832 KB Output is correct
4 Correct 79 ms 192792 KB Output is correct
5 Correct 83 ms 192960 KB Output is correct
6 Correct 82 ms 193196 KB Output is correct
7 Correct 81 ms 193144 KB Output is correct
8 Correct 80 ms 193236 KB Output is correct
9 Correct 81 ms 193208 KB Output is correct
10 Correct 85 ms 193264 KB Output is correct
11 Correct 82 ms 193196 KB Output is correct
12 Correct 81 ms 193096 KB Output is correct
13 Correct 80 ms 193116 KB Output is correct
14 Correct 92 ms 193100 KB Output is correct
15 Correct 81 ms 193180 KB Output is correct
16 Correct 83 ms 193164 KB Output is correct
17 Correct 84 ms 193140 KB Output is correct
18 Correct 80 ms 193244 KB Output is correct
19 Correct 81 ms 193264 KB Output is correct
20 Correct 81 ms 193236 KB Output is correct
21 Correct 85 ms 193144 KB Output is correct
22 Correct 81 ms 193224 KB Output is correct
23 Correct 84 ms 193272 KB Output is correct
24 Correct 83 ms 193144 KB Output is correct
25 Correct 84 ms 193200 KB Output is correct
26 Correct 82 ms 193208 KB Output is correct
27 Correct 80 ms 192904 KB Output is correct
28 Correct 81 ms 193212 KB Output is correct
29 Correct 93 ms 193120 KB Output is correct
30 Correct 82 ms 193164 KB Output is correct
31 Correct 938 ms 246760 KB Output is correct
32 Correct 127 ms 198856 KB Output is correct
33 Correct 888 ms 238464 KB Output is correct
34 Correct 842 ms 238112 KB Output is correct
35 Correct 967 ms 246552 KB Output is correct
36 Correct 979 ms 246468 KB Output is correct
37 Correct 685 ms 236692 KB Output is correct
38 Correct 728 ms 236444 KB Output is correct
39 Correct 580 ms 236308 KB Output is correct
40 Correct 575 ms 236192 KB Output is correct
41 Correct 747 ms 241644 KB Output is correct
42 Correct 738 ms 241460 KB Output is correct
43 Correct 120 ms 199412 KB Output is correct
44 Correct 721 ms 241740 KB Output is correct
45 Correct 745 ms 241592 KB Output is correct
46 Correct 730 ms 241592 KB Output is correct
47 Correct 478 ms 239244 KB Output is correct
48 Correct 480 ms 239120 KB Output is correct
49 Correct 515 ms 240504 KB Output is correct
50 Correct 552 ms 241040 KB Output is correct
51 Correct 530 ms 240492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1595 ms 846740 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2015 ms 847560 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 192848 KB Output is correct
2 Correct 80 ms 192824 KB Output is correct
3 Correct 80 ms 192832 KB Output is correct
4 Correct 79 ms 192792 KB Output is correct
5 Correct 83 ms 192960 KB Output is correct
6 Correct 82 ms 193196 KB Output is correct
7 Correct 81 ms 193144 KB Output is correct
8 Correct 80 ms 193236 KB Output is correct
9 Correct 81 ms 193208 KB Output is correct
10 Correct 85 ms 193264 KB Output is correct
11 Correct 82 ms 193196 KB Output is correct
12 Correct 81 ms 193096 KB Output is correct
13 Correct 80 ms 193116 KB Output is correct
14 Correct 92 ms 193100 KB Output is correct
15 Correct 81 ms 193180 KB Output is correct
16 Correct 83 ms 193164 KB Output is correct
17 Correct 84 ms 193140 KB Output is correct
18 Correct 80 ms 193244 KB Output is correct
19 Correct 81 ms 193264 KB Output is correct
20 Correct 81 ms 193236 KB Output is correct
21 Correct 85 ms 193144 KB Output is correct
22 Correct 81 ms 193224 KB Output is correct
23 Correct 84 ms 193272 KB Output is correct
24 Correct 83 ms 193144 KB Output is correct
25 Correct 84 ms 193200 KB Output is correct
26 Correct 82 ms 193208 KB Output is correct
27 Correct 80 ms 192904 KB Output is correct
28 Correct 81 ms 193212 KB Output is correct
29 Correct 93 ms 193120 KB Output is correct
30 Correct 82 ms 193164 KB Output is correct
31 Correct 938 ms 246760 KB Output is correct
32 Correct 127 ms 198856 KB Output is correct
33 Correct 888 ms 238464 KB Output is correct
34 Correct 842 ms 238112 KB Output is correct
35 Correct 967 ms 246552 KB Output is correct
36 Correct 979 ms 246468 KB Output is correct
37 Correct 685 ms 236692 KB Output is correct
38 Correct 728 ms 236444 KB Output is correct
39 Correct 580 ms 236308 KB Output is correct
40 Correct 575 ms 236192 KB Output is correct
41 Correct 747 ms 241644 KB Output is correct
42 Correct 738 ms 241460 KB Output is correct
43 Correct 120 ms 199412 KB Output is correct
44 Correct 721 ms 241740 KB Output is correct
45 Correct 745 ms 241592 KB Output is correct
46 Correct 730 ms 241592 KB Output is correct
47 Correct 478 ms 239244 KB Output is correct
48 Correct 480 ms 239120 KB Output is correct
49 Correct 515 ms 240504 KB Output is correct
50 Correct 552 ms 241040 KB Output is correct
51 Correct 530 ms 240492 KB Output is correct
52 Correct 748 ms 253492 KB Output is correct
53 Correct 711 ms 244596 KB Output is correct
54 Correct 880 ms 249384 KB Output is correct
55 Correct 742 ms 246188 KB Output is correct
56 Correct 694 ms 248328 KB Output is correct
57 Correct 762 ms 243572 KB Output is correct
58 Correct 714 ms 244900 KB Output is correct
59 Correct 690 ms 247236 KB Output is correct
60 Correct 729 ms 242576 KB Output is correct
61 Correct 258 ms 222948 KB Output is correct
62 Correct 737 ms 253664 KB Output is correct
63 Correct 807 ms 250384 KB Output is correct
64 Correct 857 ms 247920 KB Output is correct
65 Correct 851 ms 244184 KB Output is correct
66 Correct 785 ms 242388 KB Output is correct
67 Correct 356 ms 209268 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 192848 KB Output is correct
2 Correct 80 ms 192824 KB Output is correct
3 Correct 80 ms 192832 KB Output is correct
4 Correct 79 ms 192792 KB Output is correct
5 Correct 83 ms 192960 KB Output is correct
6 Correct 82 ms 193196 KB Output is correct
7 Correct 81 ms 193144 KB Output is correct
8 Correct 80 ms 193236 KB Output is correct
9 Correct 81 ms 193208 KB Output is correct
10 Correct 85 ms 193264 KB Output is correct
11 Correct 82 ms 193196 KB Output is correct
12 Correct 81 ms 193096 KB Output is correct
13 Correct 80 ms 193116 KB Output is correct
14 Correct 92 ms 193100 KB Output is correct
15 Correct 81 ms 193180 KB Output is correct
16 Correct 83 ms 193164 KB Output is correct
17 Correct 84 ms 193140 KB Output is correct
18 Correct 80 ms 193244 KB Output is correct
19 Correct 81 ms 193264 KB Output is correct
20 Correct 81 ms 193236 KB Output is correct
21 Correct 85 ms 193144 KB Output is correct
22 Correct 81 ms 193224 KB Output is correct
23 Correct 84 ms 193272 KB Output is correct
24 Correct 83 ms 193144 KB Output is correct
25 Correct 84 ms 193200 KB Output is correct
26 Correct 82 ms 193208 KB Output is correct
27 Correct 80 ms 192904 KB Output is correct
28 Correct 81 ms 193212 KB Output is correct
29 Correct 93 ms 193120 KB Output is correct
30 Correct 82 ms 193164 KB Output is correct
31 Correct 938 ms 246760 KB Output is correct
32 Correct 127 ms 198856 KB Output is correct
33 Correct 888 ms 238464 KB Output is correct
34 Correct 842 ms 238112 KB Output is correct
35 Correct 967 ms 246552 KB Output is correct
36 Correct 979 ms 246468 KB Output is correct
37 Correct 685 ms 236692 KB Output is correct
38 Correct 728 ms 236444 KB Output is correct
39 Correct 580 ms 236308 KB Output is correct
40 Correct 575 ms 236192 KB Output is correct
41 Correct 747 ms 241644 KB Output is correct
42 Correct 738 ms 241460 KB Output is correct
43 Correct 120 ms 199412 KB Output is correct
44 Correct 721 ms 241740 KB Output is correct
45 Correct 745 ms 241592 KB Output is correct
46 Correct 730 ms 241592 KB Output is correct
47 Correct 478 ms 239244 KB Output is correct
48 Correct 480 ms 239120 KB Output is correct
49 Correct 515 ms 240504 KB Output is correct
50 Correct 552 ms 241040 KB Output is correct
51 Correct 530 ms 240492 KB Output is correct
52 Runtime error 1595 ms 846740 KB Execution killed with signal 11
53 Halted 0 ms 0 KB -