답안 #850433

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
850433 2023-09-16T14:40:36 Z MinaRagy06 Stranded Far From Home (BOI22_island) C++17
10 / 100
1000 ms 14652 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];});
    reverse(b, b + n);
    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 173 ms 5212 KB Output is correct
5 Correct 133 ms 5464 KB Output is correct
6 Correct 274 ms 5220 KB Output is correct
7 Correct 179 ms 5232 KB Output is correct
8 Correct 136 ms 5212 KB Output is correct
9 Correct 2 ms 5208 KB Output is correct
10 Correct 47 ms 5212 KB Output is correct
11 Correct 45 ms 5220 KB Output is correct
12 Correct 48 ms 5212 KB Output is correct
13 Correct 2 ms 5464 KB Output is correct
14 Correct 15 ms 5252 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Correct 1 ms 4952 KB Output is correct
3 Execution timed out 1067 ms 14652 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Execution timed out 1084 ms 13880 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4956 KB Output is correct
2 Execution timed out 1064 ms 14072 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 173 ms 5212 KB Output is correct
5 Correct 133 ms 5464 KB Output is correct
6 Correct 274 ms 5220 KB Output is correct
7 Correct 179 ms 5232 KB Output is correct
8 Correct 136 ms 5212 KB Output is correct
9 Correct 2 ms 5208 KB Output is correct
10 Correct 47 ms 5212 KB Output is correct
11 Correct 45 ms 5220 KB Output is correct
12 Correct 48 ms 5212 KB Output is correct
13 Correct 2 ms 5464 KB Output is correct
14 Correct 15 ms 5252 KB Output is correct
15 Correct 1 ms 4956 KB Output is correct
16 Correct 1 ms 4952 KB Output is correct
17 Execution timed out 1067 ms 14652 KB Time limit exceeded
18 Halted 0 ms 0 KB -