Submission #1167503

#TimeUsernameProblemLanguageResultExecution timeMemory
11675038pete8Chameleon's Love (JOI20_chameleon)C++20
40 / 100
16 ms468 KiB
#include "chameleon.h"
#include <vector>
#include<iostream>
#define pb push_back
using namespace std;
namespace {

int variable_example = 1;

}  // namespace

vector<int>have[1001];
int done[1001],like[1001];
void Solve(int n){
  for(int i=1;i<=2*n;i++){
    if(done[i])continue;
    for(int j=1;j<=2*n;j++){
      if(i!=j){
        vector<int>q={i,j};
        if(Query(q)==1){
          have[i].pb(j);
        }
      }
    }
    if(have[i].size()==1){
      Answer(i,have[i][0]);
      done[i]=1;
      done[have[i][0]]=1;
      continue;
    }
    vector<int>ask(3,0);
    for(int j=0;j<3;j++){
      vector<int>q={i,have[i][j],have[i][(j+1)%3]};
      ask[j]=Query(q);
    }
    for(int j=0;j<3;j++)if(ask[j]==2&&ask[(j-1+3)%3]==2){
      like[i]=have[i][j];
    }
  }
  for(int i=1;i<=2*n;i++){
    if(done[i])continue;
    for(int j=0;j<3;j++)if(have[i][j]!=like[i]&&i!=like[have[i][j]]&&like[have[i][j]]){
      //cout<<have[i][j]<<" "<<like[i]<<" "<<like[have[i][j]]<<"BRO\n";
      Answer(i,have[i][j]);
      done[have[i][j]]=1;
    }
  }
}

/*

5
1 0 1 1 1 1 0 0 0 0 
3 2 4 1 5 2 1 4 3 5 
4 6 5 3 8 2 9 1 10 7 
*/
#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...