Submission #867987

#TimeUsernameProblemLanguageResultExecution timeMemory
867987TAhmed33Stranded Far From Home (BOI22_island)C++98
0 / 100
7 ms1112 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 2e3 + 25; vector <int> adj[MAXN]; int cnt[MAXN]; bool vis[MAXN]; int sze; void dfs (int pos) { vis[pos] = 1; for (auto j : adj[pos]) { if (vis[j]) continue; if (sze >= cnt[j]) { sze += cnt[j]; dfs(j); } } } int main () { int n, m; cin >> n >> m; int l = 0; for (int i = 1; i <= n; i++) cin >> cnt[i], l += cnt[i]; for (int i = 1; i <= m; i++) { int a, b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } for (int i = 1; i <= n; i++) { sort(adj[i].begin(), adj[i].end(), [&] (int &a, int &b) { return cnt[a] < cnt[b]; }); } for (int i = 1; i <= n; i++) { sze = cnt[i]; memset(vis, 0, sizeof(vis)); dfs(i); cout << (sze == l); } cout << '\n'; }
#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...