제출 #935108

#제출 시각아이디문제언어결과실행 시간메모리
9351081075508020060209tc카멜레온의 사랑 (JOI20_chameleon)C++14
40 / 100
15 ms596 KiB
#include "chameleon.h" #include <vector> #include<bits/stdc++.h> using namespace std; int n; int vis[2010]; int love[2010]; vector<int>e[2010]; int lvlv[2010]; int slv(int a,vector<int>vc){ if(Query({a,vc[0],vc[1]})==1){ return vc[2]; } if(Query({a,vc[0],vc[2]})==1){ return vc[1]; } return vc[0]; } int ans[2010]; void Solve(int N) { n=N; for(int i=1;i<=n*2;i++){ for(int j=i+1;j<=n*2;j++){ if(Query({i,j})==1){ e[i].push_back(j); e[j].push_back(i); } } } for(int i=1;i<=n*2;i++){ if(e[i].size()==1){ ans[i]=e[i][0]; lvlv[i]=1; } } for(int i=1;i<=n*2;i++){ if(e[i].size()==3){ love[i]=slv(i,e[i]); } } for(int i=1;i<=n*2;i++){ if(e[i].size()==1){continue;} if(e[i][0]!=love[i]&&(love[e[i][0]]!=i||lvlv[e[i][0]])){ans[i]=e[i][0];} if(e[i][1]!=love[i]&&(love[e[i][1]]!=i||lvlv[e[i][1]])){ans[i]=e[i][1];} if(e[i][2]!=love[i]&&(love[e[i][2]]!=i||lvlv[e[i][2]])){ans[i]=e[i][2];} } for(int i=1;i<=n*2;i++){ if(ans[i]<i){ Answer(i,ans[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...