Submission #723090

#TimeUsernameProblemLanguageResultExecution timeMemory
723090MardonbekhazratovStranded Far From Home (BOI22_island)C++17
10 / 100
1071 ms14124 KiB
#include<bits/stdc++.h>
#define ll long long
#define ff first
#define sd second
using namespace std;
vector<vector<int>>v;
vector<int>a,vis;
int main(){
	int n,m;cin>>n>>m;
	a.resize(n+1);
	v.resize(n+1);
	vis.assign(n+1,0);
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=0;i<m;i++){
		int x,y;cin>>x>>y;
		v[x].push_back(y);
		v[y].push_back(x);
	}
	for(int i=1;i<=n;i++){
		set<pair<int,int>>s;
		s.insert({0,i});
		vis[i]=i;
		ll sum=0;
		while(!s.empty()){
			pair<int,int> l=*s.begin();
			int cnt=l.ff;
			int x=l.sd;
			if(cnt>sum) break;
			s.erase(s.begin());
			sum+=a[x];
			for(int z:v[x])
				if(vis[z]!=i){
					vis[z]=i;
					s.insert({a[z],z});
				}
		}
		if(s.empty()) cout<<1;
		else cout<<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...
#Verdict Execution timeMemoryGrader output
Fetching results...