Submission #714602

#TimeUsernameProblemLanguageResultExecution timeMemory
714602ismayilStranded Far From Home (BOI22_island)C++17
0 / 100
1081 ms15472 KiB
#include <bits/stdc++.h> #define int long long //#define endl '\n' using namespace std; const int MAX = 2e5 + 5; vector<int> adj[MAX]; int color[MAX], sum[MAX]; int s[MAX], ans[MAX]; void bfs(int st){ sum[st] = s[st]; color[st] = 1; queue<int> q; q.push(st); while (!q.empty()) { int u = q.front(); q.pop(); vector<pair<int, int>> d; for(auto v : adj[u]){ if(!color[v]) d.push_back({s[v], v}); } sort(d.begin(), d.end()); for(auto i : d){ if(i.first <= sum[st]){ color[i.second] = 1; q.push(i.second); sum[st] += i.first; } } } } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin>>n>>m; int total = 0; for(int i = 1; i <= n; i++) cin>>s[i], total += s[i]; for (int i = 1; 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++){ memset(color, 0, sizeof(color)); bfs(i); if(sum[i] == total) 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...