Submission #1345054

#TimeUsernameProblemLanguageResultExecution timeMemory
1345054yc11Stranded Far From Home (BOI22_island)C++20
0 / 100
828 ms589824 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> n2;
vector<vector<int> > n1;
vector<int> pa;
vector<int> sz;
void dfs(int x, int p){
    sz[x] = n2[x];
    for (int i = 0;i<n1[x].size();i++){
        if (n1[x][i]==p) continue;
        pa[n1[x][i]] = x;
        dfs(n1[x][i],x);
        sz[x]+=sz[n1[x][i]];
    }
}
signed main(){
    int n,k;

    cin>>n>>k;
    n1.resize(n);
    n2.resize(n);
    pa.resize(n);
    sz.resize(n);

    for (int i = 0;i<n;i++) cin>>n2[i];
    for (int i = 0;i<k;i++){
        int a,b;
        cin>>a>>b;
        n1[a-1].push_back(b-1);
        n1[b-1].push_back(a-1);
            }
        sz[0] = n2[0];
        pa[0] = 0LL;
    dfs(0,-1);


     string ans = "";

    for (int i = 0;i<n;i++) ans = ans+"0";
    for (int i =0;i<n;i++){
        if (sz[i]>=n2[pa[i]]) ans[i] = '1';
    }




    cout<<ans;

    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...