Submission #1190400

#TimeUsernameProblemLanguageResultExecution timeMemory
1190400avighnaToxic Gene (NOI23_toxic)C++20
9.46 / 100
6 ms328 KiB
#include "toxic.h"

void determine_type(int n) {
  std::vector<char> ans(n + 1);
  std::vector<int> v;
  int toxic_loc = 0;
  for (int i = 1; i <= n; ++i) {
    if (!query_sample(std::vector<int>({i}))) {
      ans[i] = 'T';
      toxic_loc = i;
    } else {
      v.push_back(i);
    }
  }
  for (int i = 0; i < v.size(); i += 8) {
    std::vector<int> sample = {toxic_loc};
    for (int bt = 0; bt < 8 and i + bt < v.size(); ++bt) {
      for (int j = 0; j < (1 << bt); ++j) {
        sample.push_back(v[i + bt]);
      }
    }
    int res = query_sample(sample);
    for (int bt = 0; bt < 8 and i + bt < v.size(); ++bt) {
      if (res & (1 << bt)) {
        ans[v[i + bt]] = 'S';
      } else {
        ans[v[i + bt]] = 'R';
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    answer_type(i, ans[i]);
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...