Submission #226784

#TimeUsernameProblemLanguageResultExecution timeMemory
226784kshitij_sodaniMeetings (JOI19_meetings)C++17
29 / 100
3080 ms6904 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; typedef int64_t llo; #define mp make_pair #define pb push_back #define a first #define b second #define endl "\n" #include "meetings.h" /*void Bridge(int u,int v){ cout<<u<<" "<<v<<endl; } int Query(int u,int v,int x){ cout<<u<<" "<<v<<" "<<x<<endl; int x2; cin>>x2; return x2; }*/ void Solve(int n){ set<int> aa[n]; set<int> bb[n]; set<int> cc[n]; for(int j=1;j<n;j++){ for(int k=j+1;k<n;k++){ int x=Query(0,j,k); if(x==j){ aa[j].insert(k); cc[j].insert(k); bb[k].insert(j); } if(x==k){ aa[k].insert(j); cc[k].insert(j); bb[j].insert(k); } } } for(int i=1;i<n;i++){ aa[0].insert(i); cc[0].insert(i); bb[i].insert(0); } queue<int> ac; for(int i=0;i<n;i++){ if(aa[i].size()==0){ ac.push(i); } } int par[n]; for(int i=0;i<n;i++){ par[i]=-1; } int vis[n]; for(int i=0;i<n;i++){ vis[i]=0; } while(ac.size()){ int x=ac.front(); ac.pop(); for(auto j:bb[x]){ aa[j].erase(x); if(aa[j].size()==0){ ac.push(j); } } for(auto j:cc[x]){ if(vis[j]==0){ vis[j]=1; par[j]=x; } } } for(int i=0;i<n;i++){ if(par[i]>-1){ Bridge(min(par[i],i),max(i,par[i])); } } } /* int main(){ Solve(5); return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...