답안 #850428

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
850428 2023-09-16T14:34:26 Z MinaRagy06 Stranded Far From Home (BOI22_island) C++17
10 / 100
1000 ms 14164 KB
#include <bits/stdc++.h>
using namespace std;
typedef int64_t ll;

const int N = 200'005;
bool in[N], bad[N];
vector<int> adj[N];
int main() {
    ios_base::sync_with_stdio(0), cin.tie(0);
    int n, m;
    cin >> n >> m;
    int a[n], b[n];
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        b[i] = i;
    }
    sort(b, b + n, [&] (int i, int j) {return a[i] < a[j];});
    for (int i = 0, u, v; i < m; i++) {
        cin >> u >> v;
        u--, v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    int ans[n];
    for (auto st : b) {
        if (bad[st]) {
            ans[st] = 0;
            continue;
        }
        for (int i = 0; i < n; i++) {
            in[i] = 0;
        }
        in[st] = 1;
        priority_queue<pair<int, int>> pq;
        for (auto nxt : adj[st]) {
            pq.push({-a[nxt], nxt});
        }
        ll ttl = a[st];
        while (pq.size()) {
            int cost = -pq.top().first;
            int node = pq.top().second;
            pq.pop();
            if (in[node]) continue;
            if (ttl < cost) {
                break;
            }
            ttl += cost;
            in[node] = 1;
            for (auto nxt : adj[node]) {
                if (!in[nxt]) {
                    pq.push({-a[nxt], nxt});
                }
            }
        }
        int ok = 1;
        for (int i = 0; i < n; i++) {
            ok &= in[i];
        }
        if (!ok) {
            for (int i = 0; i < n; i++) {
                if (in[i]) {
                    bad[i] = 1;
                }
            }
        }
        ans[st] = ok;
    }
    for (auto i : ans) {
        cout << i;
    }
    cout << '\n';
    return 0;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Correct 1 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 180 ms 5220 KB Output is correct
5 Correct 133 ms 5228 KB Output is correct
6 Correct 271 ms 5216 KB Output is correct
7 Correct 179 ms 5216 KB Output is correct
8 Correct 142 ms 5236 KB Output is correct
9 Correct 2 ms 5208 KB Output is correct
10 Correct 48 ms 5212 KB Output is correct
11 Correct 46 ms 5208 KB Output is correct
12 Correct 45 ms 5212 KB Output is correct
13 Correct 2 ms 5208 KB Output is correct
14 Correct 14 ms 5256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Correct 1 ms 4956 KB Output is correct
3 Execution timed out 1087 ms 13700 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4952 KB Output is correct
2 Execution timed out 1053 ms 13828 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4952 KB Output is correct
2 Execution timed out 1069 ms 14164 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Correct 1 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 180 ms 5220 KB Output is correct
5 Correct 133 ms 5228 KB Output is correct
6 Correct 271 ms 5216 KB Output is correct
7 Correct 179 ms 5216 KB Output is correct
8 Correct 142 ms 5236 KB Output is correct
9 Correct 2 ms 5208 KB Output is correct
10 Correct 48 ms 5212 KB Output is correct
11 Correct 46 ms 5208 KB Output is correct
12 Correct 45 ms 5212 KB Output is correct
13 Correct 2 ms 5208 KB Output is correct
14 Correct 14 ms 5256 KB Output is correct
15 Correct 1 ms 4956 KB Output is correct
16 Correct 1 ms 4956 KB Output is correct
17 Execution timed out 1087 ms 13700 KB Time limit exceeded
18 Halted 0 ms 0 KB -