제출 #1216859

#제출 시각아이디문제언어결과실행 시간메모리
1216859Younis_DwaiMonster Game (JOI21_monster)C++20
0 / 100
16 ms428 KiB
#include "monster.h"
#define pb push_back
#include<bits/stdc++.h>
using namespace std;
vector<int> adj[205];
int id[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++){
      int cnt=0;
      for(int j=0;j<N;j++){
          if(i==j) continue ;
          if(Query(i,j)) ++cnt;
      }
      adj[cnt].pb(i);
  }

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

  int sum=0;
  for(auto u : adj[2]) sum+=Query(adj[1][0],u);
  if(sum){
     id[1]=adj[1][0];
     id[0]=adj[1][1];
     T[id[1]]=1;
     T[id[0]]=0;
  }
  else{
     id[1]=adj[1][1];
     id[0]=adj[1][0];
     T[id[1]]=1;
     T[id[0]]=0;
  }
  sum=0;
  for(auto u : adj[N-3]) sum+=Query(adj[N-2][0],u);
  if(sum==2){
     id[N-1]=adj[N-2][0];
     id[N-2]=adj[N-2][1];
     T[id[N-1]]=N-1;
     T[id[N-2]]=N-2;
  }
  else {
     id[N-1]=adj[N-2][1];
     id[N-2]=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...