Submission #640463

#TimeUsernameProblemLanguageResultExecution timeMemory
640463makanhuliaStranded Far From Home (BOI22_island)C++17
10 / 100
232 ms52332 KiB
#include <bits/stdc++.h> #define ll long long #define ull unsigned long long #define ii pair<int,int> using namespace std; const int dv = 1e9 + 7; const int sz = 1e5; int n, m, vtd[2*sz+5], p[2*sz+5], idx, trav; vector<int> adj[2*sz+5], v[2*sz+5]; ll cnt[2*sz+5]; void dfs(int node) { cnt[node] = p[node]; vtd[node] = 1; v[node].push_back(node); for(auto i : adj[node]) { if(!vtd[i]) { dfs(i); if(cnt[i] >= p[node]) { if(v[i].size() > v[node].size()) swap(v[node], v[i]); for(int j : v[i]) v[node].push_back(j); } cnt[node] += cnt[i]; } } } int ans[2*sz+5]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int i = 1; i <= n ;++i) { cin >> p[i]; } for(int i = 0; i < m; ++i) { int a, b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } dfs(1); for(auto i: v[1]) ans[i] = 1; for(int i = 1; i <= n; ++i) cout << ans[i]; }
#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...