Submission #1216865

#TimeUsernameProblemLanguageResultExecution timeMemory
1216865Younis_DwaiMonster Game (JOI21_monster)C++20
10 / 100
48 ms720 KiB
#include "monster.h"
#define pb push_back
#include<bits/stdc++.h>
using namespace std;
vector<int> adj[205];
int id[205],Q[205][205];
std::vector<int> Solve(int N){
  std::vector<int> T(N);
   for(int i=0;i<=N;i++) adj[i].clear();
  for(int i=0;i<N;i++){
      for(int j=i+1;j<N;j++){
          Q[i][j]=Query(i,j);
          Q[j][i]=1-Q[i][j];
      }
  }
  for(int i=0;i<N;i++){
      int cnt=0;
      for(int j=0;j<N;j++){
          if(i==j) continue ;
          if(Q[i][j])++cnt;
      }
      adj[cnt].pb(i);
  }

  for(int i=2;i<=N-3;i++){
      id[i]=adj[i][0];
      T[adj[i][0]]=i;
  }

  if(Q[adj[1][0]][adj[1][1]]){
     id[0]=adj[1][0];
     id[1]=adj[1][1];
     T[id[0]]=0;
     T[id[1]]=1;
  }
  else{
     id[0]=adj[1][1];
     id[1]=adj[1][0];
     T[id[0]]=0;
     T[id[1]]=1;
  }
  if(Q[adj[N-2][0]][adj[N-2][1]]){
     id[N-2]=adj[N-2][0];
     id[N-1]=adj[N-2][1];
     T[id[N-1]]=N-1;
     T[id[N-2]]=N-2;
  }
  else{
     id[N-2]=adj[N-2][1];
     id[N-1]=adj[N-2][0];
     T[id[N-1]]=N-1;
     T[id[N-2]]=N-2;
  }
  return T;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...