제출 #1195366

#제출 시각아이디문제언어결과실행 시간메모리
1195366avighnaMinerals (JOI19_minerals)C++20
25 / 100
7 ms2316 KiB
#include "minerals.h"
#include <vector>

void Solve(int n) {
  std::vector bit_there(n + 1, std::vector<bool>(15));
  std::vector<std::vector<int>> groups(15);
  for (int i = 1; i <= n; ++i) {
    for (int bt = 0; bt < 15; ++bt) {
      if (i & (1 << bt)) {
        groups[bt].push_back(i);
      }
    }
  }
  for (int bt = 0; bt < 15; ++bt) {
    int old = -1;
    for (auto &i : groups[bt]) {
      old = Query(i);
    }
    for (int i = n + 1; i <= 2 * n; ++i) {
      int nval = Query(i);
      if (old == nval) {
        bit_there[i - n][bt] = true;
      }
      Query(i);
    }
    for (auto &i : groups[bt]) {
      Query(i);
    }
  }
  for (int i = 1; i <= n; ++i) {
    int back = 0;
    for (int bt = 0; bt < 15; ++bt) {
      back += (1 << bt) * bit_there[i][bt];
    }
    Answer(back, i + n);
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...