Submission #1024599

#TimeUsernameProblemLanguageResultExecution timeMemory
1024599overwatch9Stranded Far From Home (BOI22_island)C++17
10 / 100
179 ms604 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxn = 2001;
ll S[maxn];
vector <int> adj[maxn];
bool vis[maxn];
int main() {
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> S[i];
    for (int i = 0; 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++) {
        ll sz = S[i];
        fill(vis, vis + n + 1, false);
        vis[i] = true;
        priority_queue <pair <ll, int>> pq;
        for (auto j : adj[i]) {
            pq.push({-S[j], j});
            vis[j] = true;
        }
        int x = 1;
        while (!pq.empty()) {
            ll tp =  -pq.top().first;
            int s = pq.top().second;
            pq.pop();
            if (tp > sz)
                break;
            sz += tp;
            x++;
            for (auto j : adj[s]) {
                if (vis[j])
                    continue;
                pq.push({-S[j], j});
                vis[j] = true;
            }
        }
        if (x == n)
            cout << 1;
        else
            cout << 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...