Submission #881668

#TimeUsernameProblemLanguageResultExecution timeMemory
881668teeslaStranded Far From Home (BOI22_island)C++14
10 / 100
1089 ms20752 KiB
#include <bits/stdc++.h> using namespace std; #define int long long typedef pair<int,int> ii; vector<vector<int>> adj; vector<int> v;int n,m; bool ok(int x){ vector<int> vis(n+2,0); vis[x] = 1; int sum = v[x]; priority_queue<ii, vector<ii>, greater<ii>> q; for(auto i: adj[x]){vis[i] = 1; q.push({v[i], i});} while(!q.empty()){ int val = q.top().first, id = q.top().second; q.pop(); if(sum < val) return 0; for(auto k: adj[id]){ if(vis[k]) continue; q.push({v[k], k}); vis[k] = 1; } sum += val; } return true; } signed main(){ cin >> n >> m; v.resize(n+2); adj.resize(n+2); for(int i=1; i<=n; i++) cin >> v[i]; for(int i=0; i<m; i++){ int a,b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } for(int i=1; i<=n; i++){ if(ok(i))cout << 1; else cout <<0; } cout << endl; }
#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...