Submission #599396

#TimeUsernameProblemLanguageResultExecution timeMemory
599396SlavicGStranded Far From Home (BOI22_island)C++17
0 / 100
7 ms724 KiB
#include "bits/stdc++.h" using namespace std; using ll = long long; const int N = 2005; vector<int> adj[N]; int a[N], n, m; bool possible(int start) { set<pair<int, int>> s; vector<bool> vis(n, false); for(auto x: adj[start]) { s.insert({a[x], x}); } int cnt = a[start]; vis[start] = true; while(!s.empty()) { auto it = s.begin(); if(it->first > cnt) break; cnt += it->first; int v = it->second; vis[v] = true; s.erase(it); for(auto x: adj[v]) { if(!vis[x]) { s.insert({a[x], x}); vis[x] = true; } } } return s.empty(); } int main() { cin >> n >> m; for(int i = 0; i < n; ++i) { cin >> a[i]; } for(int i = 0; i < m; ++i) { int u, v; cin >> u >> v; --u, --v; adj[u].push_back(v); adj[v].push_back(u); } for(int i = 0; i < n; ++i) cout << possible(i); cout << "\n"; }
#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...