Submission #137949

# Submission time Handle Problem Language Result Execution time Memory
137949 2019-07-28T15:21:39 Z Bohoty Minerals (JOI19_minerals) C++14
75 / 100
321 ms 16120 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;
  }
  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);
  }
  for(auto it : b){
    if(y.size() == x.size())continue;
    int v = get(it);
    if((!aInside && v != b4)||(aInside && v == b4)){
      y.insert(it);
    }
    b4 = v;
  }
  for(auto v : y)b.erase(v);
  goKill(x,y,aInside^1,bInside^1);
  goKill(a,b,aInside,bInside^1);
}
void Solve(int N) {
  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:59: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 760 KB Output is correct
2 Correct 10 ms 1144 KB Output is correct
3 Correct 20 ms 1784 KB Output is correct
4 Correct 42 ms 3320 KB Output is correct
5 Correct 86 ms 6068 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 KB Output is correct
15 Correct 303 ms 15336 KB Output is correct
16 Correct 275 ms 15400 KB Output is correct
17 Correct 209 ms 15368 KB Output is correct
18 Correct 213 ms 15144 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 KB Output is correct
15 Correct 303 ms 15336 KB Output is correct
16 Correct 275 ms 15400 KB Output is correct
17 Correct 209 ms 15368 KB Output is correct
18 Correct 213 ms 15144 KB Output is correct
19 Correct 321 ms 15608 KB Output is correct
20 Correct 285 ms 15780 KB Output is correct
21 Correct 229 ms 15656 KB Output is correct
22 Correct 217 ms 15480 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 KB Output is correct
15 Correct 303 ms 15336 KB Output is correct
16 Correct 275 ms 15400 KB Output is correct
17 Correct 209 ms 15368 KB Output is correct
18 Correct 213 ms 15144 KB Output is correct
19 Correct 321 ms 15608 KB Output is correct
20 Correct 285 ms 15780 KB Output is correct
21 Correct 229 ms 15656 KB Output is correct
22 Correct 217 ms 15480 KB Output is correct
23 Correct 276 ms 16088 KB Output is correct
24 Correct 272 ms 16056 KB Output is correct
25 Correct 214 ms 16120 KB Output is correct
26 Incorrect 222 ms 16040 KB Wrong Answer [2]
# 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 KB Output is correct
15 Correct 303 ms 15336 KB Output is correct
16 Correct 275 ms 15400 KB Output is correct
17 Correct 209 ms 15368 KB Output is correct
18 Correct 213 ms 15144 KB Output is correct
19 Correct 321 ms 15608 KB Output is correct
20 Correct 285 ms 15780 KB Output is correct
21 Correct 229 ms 15656 KB Output is correct
22 Correct 217 ms 15480 KB Output is correct
23 Correct 276 ms 16088 KB Output is correct
24 Correct 272 ms 16056 KB Output is correct
25 Correct 214 ms 16120 KB Output is correct
26 Incorrect 222 ms 16040 KB Wrong Answer [2]
# 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 KB Output is correct
15 Correct 303 ms 15336 KB Output is correct
16 Correct 275 ms 15400 KB Output is correct
17 Correct 209 ms 15368 KB Output is correct
18 Correct 213 ms 15144 KB Output is correct
19 Correct 321 ms 15608 KB Output is correct
20 Correct 285 ms 15780 KB Output is correct
21 Correct 229 ms 15656 KB Output is correct
22 Correct 217 ms 15480 KB Output is correct
23 Correct 276 ms 16088 KB Output is correct
24 Correct 272 ms 16056 KB Output is correct
25 Correct 214 ms 16120 KB Output is correct
26 Incorrect 222 ms 16040 KB Wrong Answer [2]
# 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 760 KB Output is correct
6 Correct 10 ms 1144 KB Output is correct
7 Correct 20 ms 1784 KB Output is correct
8 Correct 42 ms 3320 KB Output is correct
9 Correct 86 ms 6068 KB Output is correct
10 Correct 6 ms 760 KB Output is correct
11 Correct 54 ms 4264 KB Output is correct
12 Correct 86 ms 6136 KB Output is correct
13 Correct 70 ms 6136 KB Output is correct
14 Correct 74 ms 6136 KB Output is correct
15 Correct 303 ms 15336 KB Output is correct
16 Correct 275 ms 15400 KB Output is correct
17 Correct 209 ms 15368 KB Output is correct
18 Correct 213 ms 15144 KB Output is correct
19 Correct 321 ms 15608 KB Output is correct
20 Correct 285 ms 15780 KB Output is correct
21 Correct 229 ms 15656 KB Output is correct
22 Correct 217 ms 15480 KB Output is correct
23 Correct 276 ms 16088 KB Output is correct
24 Correct 272 ms 16056 KB Output is correct
25 Correct 214 ms 16120 KB Output is correct
26 Incorrect 222 ms 16040 KB Wrong Answer [2]