Submission #646699

#TimeUsernameProblemLanguageResultExecution timeMemory
646699Tenis0206Stranded Far From Home (BOI22_island)C++11
10 / 100
1092 ms15456 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n,m; int s[200005]; vector<int> G[200005]; bool sel[200005],reached[200005]; bool check(int nod) { priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> h; for(int i=1;i<=n;i++) { sel[i] = false; reached[i] = false; } sel[nod] = true; reached[nod] = true; int nr = s[nod]; for(auto it : G[nod]) { h.push({s[it],it}); sel[it] = true; } for(int i=1;i<n;i++) { int nod = h.top().second; h.pop(); if(nr < s[nod]) { break; } reached[nod] = true; nr += s[nod]; for(auto it : G[nod]) { if(sel[it]) { continue; } h.push({s[it],it}); sel[it] = true; } } bool ok = true; for(int i=1;i<=n;i++) { ok &= reached[i]; } return ok; } signed main() { ios::sync_with_stdio(false); cin.tie(0); cin>>n>>m; for(int i=1;i<=n;i++) { cin>>s[i]; } for(int i=1;i<=m;i++) { int x,y; cin>>x>>y; G[x].push_back(y); G[y].push_back(x); } string s; for(int i=1;i<=n;i++) { s.push_back(check(i) + '0'); } cout<<s<<'\n'; 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...