Submission #859071

#TimeUsernameProblemLanguageResultExecution timeMemory
859071vgtcrossStranded Far From Home (BOI22_island)C++17
10 / 100
1079 ms13996 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; const int N = 200200; vector<int> adj[N]; void solve() { int n, m; cin >> n >> m; vector<ll> s(n+1); for (int i = 1; i <= n; ++i) cin >> s[i]; for (int i = 0; i < m; ++i) { int u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for (int i = 1; i <= n; ++i) { priority_queue<pll> pq; ll sum = 0; pq.push({-s[i], i}); int left = n; vector<bool> vis(n, 0); while (pq.size()) { pll p = pq.top(); pq.pop(); if (vis[p.second]) continue; p.first *= -1; if (sum != 0 && sum < p.first) break; vis[p.second] = 1; --left; sum += p.first; for (int v : adj[p.second]) if (!vis[v]) { pq.push({-s[v], v}); } } cout << (left == 0); } cout << '\n'; } int main() { cin.tie(0) -> sync_with_stdio(0); solve(); }
#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...