Submission #1121541

#TimeUsernameProblemLanguageResultExecution timeMemory
1121541vjudge1Stranded Far From Home (BOI22_island)C++17
0 / 100
980 ms524288 KiB
#include <bits/stdc++.h> #define ll long long #define all(x) x.begin(), x.end() #define in insert #define F first #define S second #define ppf pop_front #define pb push_back #define ppb pop_back #define pf push_front #define pii pair <int, int> #define pll pair <ll, ll> #define boost() ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define sz(x) (int)x.size() using namespace std; const int N = 2e5+123; const ll mod = 1e9+7; vector<int> g[N]; int a[N]; int ans[N]; int ls[N]; void dfs(int v,int p){ ls[v]=a[v]; for(int to : g[v]){ if(to != p){ dfs(to , v); ls[v]+=ls[to]; } } } void dfs2(int v , int p){ if(ans[p] == 0) ans[v]=0; else{ if(ls[v] >= a[p]) ans[v]=1; else ans[v]=0; } for(int to : g[v]){ if(to != p){ dfs2(to , v); } } } void solve() { int n,m; cin >> n >> m; for(int i=1 ; i <= n ; i++){ cin >> a[i]; } for(int i=1 ; i <= m ; i++){ int v,u; cin >> v >> u; g[u].pb(v); g[v].pb(u); } ans[0]=1; dfs(1 , 0); dfs2(1 , 0); for(int i=1 ; i <= n ; i++){ cout << ans[i]; } } /* 4 3 2 2 1 1 1 2 2 3 3 4 */ signed main() { boost(); int tt=1; //cin >> tt; while (tt--) { solve(); } 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...