답안 #137950

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
137950 2019-07-28T15:22:16 Z Bohoty Minerals (JOI19_minerals) C++14
75 / 100
280 ms 16136 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(rand()&1)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)){
        ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 760 KB Output is correct
2 Correct 11 ms 1144 KB Output is correct
3 Correct 21 ms 1784 KB Output is correct
4 Correct 45 ms 3448 KB Output is correct
5 Correct 92 ms 6136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
15 Correct 260 ms 15280 KB Output is correct
16 Correct 265 ms 15292 KB Output is correct
17 Correct 200 ms 15272 KB Output is correct
18 Correct 217 ms 15032 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
15 Correct 260 ms 15280 KB Output is correct
16 Correct 265 ms 15292 KB Output is correct
17 Correct 200 ms 15272 KB Output is correct
18 Correct 217 ms 15032 KB Output is correct
19 Correct 268 ms 15736 KB Output is correct
20 Correct 273 ms 15696 KB Output is correct
21 Correct 207 ms 15656 KB Output is correct
22 Correct 221 ms 15516 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
15 Correct 260 ms 15280 KB Output is correct
16 Correct 265 ms 15292 KB Output is correct
17 Correct 200 ms 15272 KB Output is correct
18 Correct 217 ms 15032 KB Output is correct
19 Correct 268 ms 15736 KB Output is correct
20 Correct 273 ms 15696 KB Output is correct
21 Correct 207 ms 15656 KB Output is correct
22 Correct 221 ms 15516 KB Output is correct
23 Correct 280 ms 16136 KB Output is correct
24 Correct 280 ms 16096 KB Output is correct
25 Correct 213 ms 16120 KB Output is correct
26 Incorrect 223 ms 15856 KB Wrong Answer [2]
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
15 Correct 260 ms 15280 KB Output is correct
16 Correct 265 ms 15292 KB Output is correct
17 Correct 200 ms 15272 KB Output is correct
18 Correct 217 ms 15032 KB Output is correct
19 Correct 268 ms 15736 KB Output is correct
20 Correct 273 ms 15696 KB Output is correct
21 Correct 207 ms 15656 KB Output is correct
22 Correct 221 ms 15516 KB Output is correct
23 Correct 280 ms 16136 KB Output is correct
24 Correct 280 ms 16096 KB Output is correct
25 Correct 213 ms 16120 KB Output is correct
26 Incorrect 223 ms 15856 KB Wrong Answer [2]
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
15 Correct 260 ms 15280 KB Output is correct
16 Correct 265 ms 15292 KB Output is correct
17 Correct 200 ms 15272 KB Output is correct
18 Correct 217 ms 15032 KB Output is correct
19 Correct 268 ms 15736 KB Output is correct
20 Correct 273 ms 15696 KB Output is correct
21 Correct 207 ms 15656 KB Output is correct
22 Correct 221 ms 15516 KB Output is correct
23 Correct 280 ms 16136 KB Output is correct
24 Correct 280 ms 16096 KB Output is correct
25 Correct 213 ms 16120 KB Output is correct
26 Incorrect 223 ms 15856 KB Wrong Answer [2]
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 248 KB Output is correct
5 Correct 6 ms 760 KB Output is correct
6 Correct 11 ms 1144 KB Output is correct
7 Correct 21 ms 1784 KB Output is correct
8 Correct 45 ms 3448 KB Output is correct
9 Correct 92 ms 6136 KB Output is correct
10 Correct 6 ms 788 KB Output is correct
11 Correct 57 ms 4136 KB Output is correct
12 Correct 91 ms 6264 KB Output is correct
13 Correct 73 ms 6356 KB Output is correct
14 Correct 78 ms 6152 KB Output is correct
15 Correct 260 ms 15280 KB Output is correct
16 Correct 265 ms 15292 KB Output is correct
17 Correct 200 ms 15272 KB Output is correct
18 Correct 217 ms 15032 KB Output is correct
19 Correct 268 ms 15736 KB Output is correct
20 Correct 273 ms 15696 KB Output is correct
21 Correct 207 ms 15656 KB Output is correct
22 Correct 221 ms 15516 KB Output is correct
23 Correct 280 ms 16136 KB Output is correct
24 Correct 280 ms 16096 KB Output is correct
25 Correct 213 ms 16120 KB Output is correct
26 Incorrect 223 ms 15856 KB Wrong Answer [2]