제출 #1359035

#제출 시각아이디문제언어결과실행 시간메모리
1359035053thousandCoin (NOI24_coin)C++20
32 / 100
132 ms644 KiB
#include<bits/stdc++.h>
using namespace std;
bool vis[1005];
int le,mo;
int a,b,c,d,e,f,g,ans[1005];
vector<pair<int,int>>v[1005][2];
void dfs(int x,int y,int z){
	for(int i=0;i<v[x][y].size();i++){
		if(v[x][y][i].second>z) return;
		if(vis[v[x][y][i].first]==0){
			if(y==0) mo++;
			else le++;
			vis[v[x][y][i].first]=1;
			dfs(v[x][y][i].first,y,z);
		}
	}
}
int main(){
	cin>>a>>b;
	for(int i=0;i<b;i++){
		cin>>c>>d;
		v[c][0].push_back({d,i+1});
		v[d][1].push_back({c,i+1});
	}
	for(int i=1;i<=a;i++){
		int l=1,r=b+1;
		ans[i]=-1;
		while(l<r){
//			cout<<i<<' '<<l<<' '<<r<<endl;
			int m=(l+r)/2;
			dfs(i,0,m);
			dfs(i,1,m);
			if(le+mo==a-1) ans[i]=m,r=m;
			else l=m+1;
			for(int i=1;i<=a;i++) vis[i]=0;
			le=0;
			mo=0;
		}
	}
	for(int i=1;i<=a;i++) cout<<ans[i]<<' ';
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…