제출 #1287861

#제출 시각아이디문제언어결과실행 시간메모리
1287861simona1230Meetings (JOI19_meetings)C++20
0 / 100
30 ms10128 KiB
#include <bits/stdc++.h> #include "meetings.h" using namespace std; set<int> s[200001]; int use[200001],done[200001]; void Solve(int n) { for(int i=0;i<n;i++) { s[i].clear(); use[i]=done[i]=0; } s[0].insert(1); s[1].insert(0); for(int i=2; i<n; i++) { if(done[i])continue; for(int j=0;j<n;j++) use[j]=0; int a=0,c=1; bool f=0; while(!f) { int q=Query(a,i,c); //cout<<"! "<<a<<" "<<i<<" "<<c<<" "<<q<<endl; use[a]=use[c]=1; if(q==i) { f=1; s[a].erase(c); s[c].erase(a); s[a].insert(i); s[c].insert(i); s[i].insert(a); s[i].insert(c); } else if(q!=a&&q!=c) { f=1; s[a].erase(c); s[c].erase(a); s[a].insert(q); s[c].insert(q); s[i].insert(q); s[q].insert(a); s[q].insert(c); s[q].insert(i); done[q]=1; } else { if(c==q)swap(a,c); int nb=-1; for(auto it=s[a].begin(); it!=s[a].end(); it++) { if(!use[*it]) { nb=*it; break; } } if(nb==-1) { f=1; s[a].insert(i); s[i].insert(a); } else { c=nb; } } } } for(int i=0;i<n;i++) { for(auto it=s[i].begin();it!=s[i].end();it++) { if(*it>i) { //cout<<i<<" "<<*it<<endl; Bridge(i,*it); } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...