Submission #1362474

#TimeUsernameProblemLanguageResultExecution timeMemory
1362474AishaStranded Far From Home (BOI22_island)C++20
0 / 100
57 ms23852 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int N = 200005;
vector <int> g[N];
int sz[N], ans[N], vis[N];

void dfs(int i, int p) {
    for (int x : g[i]) {
        if (x == p) continue;
        dfs(x, i);
    }
    for (int x : g[i]) {
        if (x == p) continue;
        sz[i] += sz[x];
    }
    ans[i] = (sz[i] >= sz[p]);
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n, m;
    cin >> n >> m;

    for (int i = 1; i <= n; i ++) cin >> sz[i];
    for (int i = 1, u, v; i <= m; i ++) cin >> u >> v, g[min(u, v)].push_back(max(u, v));
    dfs(1, 0);
    for (int i = 1; i <= n; i ++) cout << ans[i];

    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...