Submission #1305591

#TimeUsernameProblemLanguageResultExecution timeMemory
1305591thesentroStranded Far From Home (BOI22_island)C++20
10 / 100
253 ms32168 KiB
/* _____ _ ____ _ |_ _| |__ ___/ ___| ___ _ __ | |_ _ __ ___ | | | '_ \ / _ \___ \ / _ \ '_ \| __| '__/ _ \ | | | | | | __/___) | __/ | | | |_| | | (_) | |_| |_| |_|\___|____/ \___|_| |_|\__|_| \___/ */ #include <bits/stdc++.h> #pragma GCC optimize("O3") using namespace std; #define ll long long ll mod = 1e9+7; //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ll binpow(ll a, ll b) { ll res = 1; while (b>0) { if (b&1) res = (res*a)%mod; a = (a*a)%mod; b>>=1; } return res; } ll gcd(ll x, ll y) { if (y==0) return x; return gcd(y, x%y); } ll maxi = 202020; vector<vector<ll>>g(maxi); vector<ll>sum(maxi, 0); vector<ll>vis(maxi, 0); vector<ll>v(maxi); void dfs(ll x) { vis[x] = 1; for (auto i:g[x]) { if (vis[i]) continue; dfs(i); sum[x] += sum[i]; } sum[x] += v[x]; } string res(maxi, '0'); void dfs1(ll x, ll req) { vis[x] =1; ll var = sum[x]; if (var>=req) res[x-1] = '1'; else return; for (auto i:g[x]) { if(vis[i]==0) { dfs1(i, v[x]); } } } void solve() { ll n,m; cin>>n>>m; for (int i=1 ; i<=n ;i++) cin>>v[i]; for (int i=1 ; i<=m ;i++) { ll x,y; cin>>x>>y; g[x].push_back(y); g[y].push_back(x); } dfs(1); for (int i=1 ; i<=n ;i++) vis[i] = 0; dfs1(1, 0); // cout<<sum[1]<<" "<<sum[2]<<endl; for (int i=0 ; i<n ;i++) cout<<res[i]; } int main() { ll 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...