Submission #722934

#TimeUsernameProblemLanguageResultExecution timeMemory
722934drdilyorStranded Far From Home (BOI22_island)C++17
10 / 100
1073 ms14556 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;

int main() {
    int n, m;
    cin >> n >> m;
    vector s(n, 0);
    for (int& i : s) cin >> i;
    vector<vector<int>> adj(n);
    for (int i = 0; i < m ;i++) {
        int u, v;
        cin >> u >> v;
        u--;v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    string res(n, '0');
    for (int i = 0; i < n;i++) {
        vector<int> vis(n);
        set<pair<int,int>> st;
        st.emplace(0, i);
        vis[i]= 1;
        ll sum = s[i];
        while (st.size()) {
            auto [w, i] = *st.begin();
            if (sum < w) break;
            st.erase(st.begin());
            sum += w;
            for (int e : adj[i]) {
                if (!vis[e])
                    vis[e] = 1,
                    st.emplace(s[e], e);
            }
        }
        res[i] |= st.empty();
    }
    cout << res << '\n';
}
#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...