Submission #711223

#TimeUsernameProblemLanguageResultExecution timeMemory
711223safaricolaStranded Far From Home (BOI22_island)C++17
10 / 100
1101 ms15940 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,n) for(int i = 1; i <= n; i++)
#define ii pair<int,int>
#define f first
#define s second
#define pb push_back
#define debug(x) cout<<#x<<' '<<x<<endl;

vector<int> adj[200010];
int n,m,a[200010];
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n>>m;
    rep(i,n)cin>>a[i];
    rep(i,m){
        int A,B;cin>>A>>B;
        adj[A].pb(B);
        adj[B].pb(A);
    }
    rep(i,n){
        bool vis[200010]={};
        int cur=a[i];
        priority_queue<ii,vector<ii>, greater<ii> > pq;
        pq.push({0,i});
        vis[i]=1;
        while(!pq.empty()&&pq.top().f<=cur){
            cur+=pq.top().f;
            int v=pq.top().s;
           // cout<<v<<' '<<cur<<endl;
            pq.pop();
            for(int u: adj[v]){
                if(!vis[u]){
                    vis[u]=1;
                    pq.push({a[u],u});
                }
            }
        }
        if(pq.empty())cout<<1;else cout<<0;
    }
    
}
/*
4 4
2 2 4 3  
1 2
1 3
2 3
3 4

4 3 
4 2 2 1 
1 2
3 2
4 1
*/
#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...