Submission #1356284

#TimeUsernameProblemLanguageResultExecution timeMemory
1356284nathlol2Stranded Far From Home (BOI22_island)C++20
10 / 100
1096 ms15924 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 5;
int n, m, a[N], vis[N];
string ans;
vector<int> adj[N];
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;

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

    cin >> n >> m;
    for(int i = 1;i<=n;i++) cin >> a[i];
    for(int i = 1;i<=m;i++){
        int u, v; cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    for(int i = 1;i<=n;i++){
        for(int j = 1;j<=n;j++) vis[j] = 0;
        int sm = a[i], ok = 1;
        pq.push({0, i});
        vis[i] = 1;
        while(!pq.empty()){
            auto [d, u] = pq.top();
            pq.pop();
            if(sm < d){
                ok = 0;
                break;
            }
            sm += d;
            for(auto v : adj[u]){
                if(!vis[v]){
                    vis[v] = 1;
                    pq.push({a[v], v});
                }
            }
        }
        if(ok) ans += '1';
        else ans += '0';
        while(pq.size()) pq.pop();
    }
    cout << ans;
}
#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...