Submission #1202398

#TimeUsernameProblemLanguageResultExecution timeMemory
1202398noyancanturkMinerals (JOI19_minerals)C++20
70 / 100
13 ms2308 KiB
#include "minerals.h"

#include<bits/stdc++.h>
using namespace std;

int last=0;
int query(int x){
  return last=Query(x);
}
int delta(int x){
  int res=Query(x);
  int ans=res-last;
  last=res;
  return ans;
}

void Solve(int n) {
  vector<int>f,s;
  for(int i=1;i<=2*n;i++){
    if(delta(i)==1){
      f.push_back(i);
    }else{
      s.push_back(i);
    }
  }
  vector<int>have(n,1);
  vector<int>part(n);
  for(int i=0;i<16;i++){
    for(int j=0;j<n;j++){
      if(((j>>i)&1)!=have[j]){
        query(f[j]);
        have[j]=!have[j];
      }
    }
    for(int j=0;j<n;j++){
      if(!delta(s[j])){
        part[j]|=1<<i;
      }
    }
  }
  for(int i=0;i<n;i++){
    Answer(f[part[i]],s[i]);
  }
}
#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...