Submission #1343619

#TimeUsernameProblemLanguageResultExecution timeMemory
1343619jellybeanStranded Far From Home (BOI22_island)C++20
10 / 100
1097 ms16524 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
#define pb push_back
#define dd(x) cout<<#x<<" is "<<x<<endl;
#define dd2(x,y) cout<<#x<<" is "<<x<<" "<<#y<<" is "<<y<<endl;
typedef pair<int,int> pii;

const int N = 2e5+5;
int a[N], ans[N], vis[N];
vector<int> adj[N];
 
signed main(){
	ios::sync_with_stdio(0); cin.tie(0);
	
	int n,m; cin>>n>>m;
	for(int i=1; i<=n; i++) cin>>a[i];
	for(int i=0; i<m; i++){
		int u,v; cin>>u>>v;
		adj[u].pb(v);
		adj[v].pb(u);
	}
	
	for(int i=1; i<=n; i++){
		priority_queue<pii, vector<pii>, greater<pii>> pq;
		memset(vis,0,sizeof(vis));
		pq.push({a[i],i});
		vis[i] = 1;
		int sum = 0, f = 0;
		while(!pq.empty()){
			auto[s,id] = pq.top(); pq.pop();
			if(sum >= s or id == i){
				sum += s;
				for(auto j: adj[id]){
					if(vis[j]) continue;
					vis[j] = 1;
					pq.push({a[j],j});
				}
			} else {
				f = 1;
				break;
			}
		}
		if(f == 0) ans[i] = 1;
	}
	
	for(int i=1; i<=n; i++) cout<<ans[i];	
		
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...