Submission #137959

# Submission time Handle Problem Language Result Execution time Memory
137959 2019-07-28T15:31:43 Z Bohoty Minerals (JOI19_minerals) C++14
80 / 100
378 ms 16848 KB
#include "minerals.h"
//#include "grader.cpp"
#pragma GCC optimize ("O3")
#include<bits/stdc++.h>
using namespace std;
const int mxN = 2e5 + 5;
int inside[mxN], tot;
int get(int x){
  if(inside[x])
  tot--;
  else
  tot++;
  inside[x] ^= 1;
  return tot - Query(x);
}
void goKill(set<int> a, set<int> b, bool aInside, bool bInside){
  // cout << a.size() << '\n';
  if(a.size() == 2){
      int cur = get(*a.begin());
      int cur2 = get(*b.begin());
      if(aInside){
        if(cur == cur2){
          Answer(*a.begin(),*b.begin());
          Answer(*a.rbegin(),*b.rbegin());
        } else {
          Answer(*a.begin(),*b.rbegin());
          Answer(*a.rbegin(),*b.begin());
        }
      }
    else {
      if(cur != cur2){
        Answer(*a.begin(),*b.begin());
        Answer(*a.rbegin(),*b.rbegin());
      } else {
        Answer(*a.begin(),*b.rbegin());
        Answer(*a.rbegin(),*b.begin());
      }
    }
    return;
  }
  if(a.size() == 1){
    Answer(*a.begin(), *b.begin());
    return;
  }
  std::vector<int> o;
  for(auto x : b)o.push_back(x);
  random_shuffle(o.begin(),o.end());
  int sz = a.size();
  set<int> x, y;
  int b4;
  int take = ceil(0.36 * sz);
  if(!aInside)take = sz - take;
  for(int j = 1; j <= take; j++){
    int v = *a.begin();
    a.erase(v);
    x.insert(v);
    b4 = get(v);
  }
  b.clear();
  for(auto it : o){
    if(x.size() == y.size())b.insert(it);
    else {
    int v = get(it);
    if((!aInside && v != b4)||(aInside && v == b4)){
      y.insert(it);
    } else b.insert(it);
    b4 = v;
    }
  }
  goKill(x,y,aInside^1,bInside^1);
  goKill(a,b,aInside,bInside^1);
}
void Solve(int N) {
  srand(time(0));
  int n = N + N;
  set<int> a, b;
  int b4 = 0;
  for (int i = 1; i <= n; i++) {
    int x = get(i);
    if(x > b4){
      a.insert(i);
    } else {
      b.insert(i);
    }
    b4 = x;
  }
  // cout << a.size() << ' ' << b.size() << '\n';

  goKill(a, b, 1, 1);

}

Compilation message

minerals.cpp: In function 'void goKill(std::set<int>, std::set<int>, bool, bool)':
minerals.cpp:64:29: warning: 'b4' may be used uninitialized in this function [-Wmaybe-uninitialized]
     if((!aInside && v != b4)||(aInside && v == b4)){
        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 632 KB Output is correct
2 Correct 12 ms 1144 KB Output is correct
3 Correct 25 ms 1904 KB Output is correct
4 Correct 53 ms 3576 KB Output is correct
5 Correct 118 ms 6268 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
15 Correct 333 ms 15672 KB Output is correct
16 Correct 337 ms 15920 KB Output is correct
17 Correct 326 ms 15824 KB Output is correct
18 Correct 321 ms 15620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
15 Correct 333 ms 15672 KB Output is correct
16 Correct 337 ms 15920 KB Output is correct
17 Correct 326 ms 15824 KB Output is correct
18 Correct 321 ms 15620 KB Output is correct
19 Correct 354 ms 16132 KB Output is correct
20 Correct 346 ms 16176 KB Output is correct
21 Correct 332 ms 16124 KB Output is correct
22 Correct 330 ms 16040 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
15 Correct 333 ms 15672 KB Output is correct
16 Correct 337 ms 15920 KB Output is correct
17 Correct 326 ms 15824 KB Output is correct
18 Correct 321 ms 15620 KB Output is correct
19 Correct 354 ms 16132 KB Output is correct
20 Correct 346 ms 16176 KB Output is correct
21 Correct 332 ms 16124 KB Output is correct
22 Correct 330 ms 16040 KB Output is correct
23 Correct 355 ms 16588 KB Output is correct
24 Correct 378 ms 16488 KB Output is correct
25 Correct 363 ms 16536 KB Output is correct
26 Correct 355 ms 16408 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
15 Correct 333 ms 15672 KB Output is correct
16 Correct 337 ms 15920 KB Output is correct
17 Correct 326 ms 15824 KB Output is correct
18 Correct 321 ms 15620 KB Output is correct
19 Correct 354 ms 16132 KB Output is correct
20 Correct 346 ms 16176 KB Output is correct
21 Correct 332 ms 16124 KB Output is correct
22 Correct 330 ms 16040 KB Output is correct
23 Correct 355 ms 16588 KB Output is correct
24 Correct 378 ms 16488 KB Output is correct
25 Correct 363 ms 16536 KB Output is correct
26 Correct 355 ms 16408 KB Output is correct
27 Incorrect 345 ms 16848 KB Wrong Answer [2]
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
15 Correct 333 ms 15672 KB Output is correct
16 Correct 337 ms 15920 KB Output is correct
17 Correct 326 ms 15824 KB Output is correct
18 Correct 321 ms 15620 KB Output is correct
19 Correct 354 ms 16132 KB Output is correct
20 Correct 346 ms 16176 KB Output is correct
21 Correct 332 ms 16124 KB Output is correct
22 Correct 330 ms 16040 KB Output is correct
23 Correct 355 ms 16588 KB Output is correct
24 Correct 378 ms 16488 KB Output is correct
25 Correct 363 ms 16536 KB Output is correct
26 Correct 355 ms 16408 KB Output is correct
27 Incorrect 345 ms 16848 KB Wrong Answer [2]
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 248 KB Output is correct
3 Correct 2 ms 248 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 632 KB Output is correct
6 Correct 12 ms 1144 KB Output is correct
7 Correct 25 ms 1904 KB Output is correct
8 Correct 53 ms 3576 KB Output is correct
9 Correct 118 ms 6268 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 69 ms 4280 KB Output is correct
12 Correct 116 ms 6328 KB Output is correct
13 Correct 123 ms 6452 KB Output is correct
14 Correct 108 ms 6256 KB Output is correct
15 Correct 333 ms 15672 KB Output is correct
16 Correct 337 ms 15920 KB Output is correct
17 Correct 326 ms 15824 KB Output is correct
18 Correct 321 ms 15620 KB Output is correct
19 Correct 354 ms 16132 KB Output is correct
20 Correct 346 ms 16176 KB Output is correct
21 Correct 332 ms 16124 KB Output is correct
22 Correct 330 ms 16040 KB Output is correct
23 Correct 355 ms 16588 KB Output is correct
24 Correct 378 ms 16488 KB Output is correct
25 Correct 363 ms 16536 KB Output is correct
26 Correct 355 ms 16408 KB Output is correct
27 Incorrect 345 ms 16848 KB Wrong Answer [2]
28 Halted 0 ms 0 KB -