Submission #226780

#TimeUsernameProblemLanguageResultExecution timeMemory
226780kshitij_sodaniMeetings (JOI19_meetings)C++17
0 / 100
3066 ms1260 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){
			if(i==par[i]){
				while(true){
					continue;
				}
			}
			Bridge(par[i],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...