Submission #848192

#TimeUsernameProblemLanguageResultExecution timeMemory
848192AloraStranded Far From Home (BOI22_island)C++17
10 / 100
272 ms16480 KiB
#include <bits/stdc++.h> #define name "cownav" #define fi(i,a,b) for(int i = a; i <= b; i++) #define fid(i,a,b) for(int i = a; i >= b; i--) #define ll long long #define f first #define se second #define pii pair<int, ll> #define getbit(i, j) ((i >> j) & 1) #define pb push_back #define all(v) v.begin(), v.end() #define maxn 200005 const int M = 1e9 + 7; using namespace std; mt19937_64 rng(time(0)); int n, m, a[maxn]; vector <int> g[maxn]; priority_queue <pii> q; bool xd[maxn]; bool check(int x){ fi(i, 1, n) xd[i] = 0; xd[x] = 1; ll sum = a[x]; while(q.size()) q.pop(); for(auto v: g[x]) xd[v] = 1, q.push({-a[v], v}); while(q.size()){ auto [h, u] = q.top(); q.pop(); if(sum < a[u]) return 0; sum += a[u]; for(auto v: g[u]) if(!xd[v]) xd[v] = 1, q.push({-a[v], v}); } return 1; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(NULL); // freopen(name".inp","r",stdin); //freopen(name".out","w",stdout); cin >> n >> m; fi(i, 1, n) cin >> a[i]; fi(i, 1, m){ int u, v; cin >> u >> v; g[u].pb(v); g[v].pb(u); } if(n <= 2000 && m <= 2000){ fi(i, 1, n) cout << check(i); return 0; } 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...