답안 #677756

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
677756 2023-01-04T10:02:22 Z dooompy Pipes (BOI13_pipes) C++17
42.7778 / 100
192 ms 18332 KB
#include "bits/stdc++.h"

using namespace std;

void abc() {cout << endl;}
template <typename T, typename ...U> void abc(T a, U ...b) {
    cout << a << ' ', abc(b...);
}
template <typename T> void printv(T l, T r) {
    while (l != r) cout << *l << " \n"[++l == r];
}
template <typename A, typename B> istream& operator >> (istream& o, pair<A, B> &a) {
    return o >> a.first >> a.second;
}
template <typename A, typename B> ostream& operator << (ostream& o, pair<A, B> a) {
    return o << '(' << a.first << ", " << a.second << ')';
}
template <typename T> ostream& operator << (ostream& o, vector<T> a) {
    bool is = false;
    for (T i : a) {o << (is ? ' ' : '{'), is = true, o << i;}
    return o << '}';
}

#ifdef local
#define test(args...) abc("[" + string(#args) + "]", args)
#else
#define test(args...) void(0)
#endif

using ll = long long;

ll v[100005];
int deg[100005];

vector<pair<int, int>> adj[100005];
ll calc[500005];

bool seen[100005];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
//    freopen("", "r", stdin);
//    freopen("", "w", stdout);
    int n, m; cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> v[i];
    for (int i = 1; i <= m; i++) {
        int a, b; cin >> a >> b;
        adj[a].push_back({b, i});
        adj[b].push_back({a, i});
        deg[a]++; deg[b]++;
    }

    queue<int> q;

    for (int i = 1; i <= n; i++) {
        if (deg[i] == 1) {
            q.push(i);
        }
    }

    while (!q.empty()) {
        // deg 1
        auto cur = q.front(); q.pop();
        seen[cur] = true;
        deg[cur] = 0;

        auto to = adj[cur][0];
        if (seen[to.first]) continue;
        ll weight = v[cur];

        v[to.first] -= weight;
        calc[to.second] = weight;

        if (--deg[to.first] == 1) {
            q.push(to.first);
        }
    }

    if (m == n - 1) {
        for (int i = 1; i <= m; i++) {
            cout << calc[i] * 2 << "\n";
        }
        return 0;
    }

    if (m > n || m % 2 == 0) {
        cout << 0 << endl;
        return 0;
    }

    for (int i = 1; i <= n; i++) {
        assert(deg[i] == 2);
    }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2644 KB Output isn't correct
2 Incorrect 2 ms 2644 KB Output isn't correct
3 Incorrect 2 ms 2644 KB Output isn't correct
4 Incorrect 53 ms 9408 KB Output isn't correct
5 Incorrect 1 ms 2644 KB Output isn't correct
6 Incorrect 2 ms 2688 KB Output isn't correct
7 Incorrect 1 ms 2644 KB Output isn't correct
8 Incorrect 1 ms 2644 KB Output isn't correct
9 Incorrect 2 ms 2688 KB Output isn't correct
10 Incorrect 2 ms 2644 KB Output isn't correct
11 Incorrect 2 ms 2696 KB Output isn't correct
12 Incorrect 2 ms 2644 KB Output isn't correct
13 Incorrect 38 ms 7940 KB Output isn't correct
14 Incorrect 52 ms 9056 KB Output isn't correct
15 Incorrect 51 ms 9480 KB Output isn't correct
16 Incorrect 41 ms 8396 KB Output isn't correct
17 Incorrect 49 ms 9480 KB Output isn't correct
18 Incorrect 71 ms 9492 KB Output isn't correct
19 Incorrect 54 ms 8548 KB Output isn't correct
20 Incorrect 2 ms 2644 KB Output isn't correct
21 Incorrect 2 ms 2644 KB Output isn't correct
22 Incorrect 52 ms 9484 KB Output isn't correct
23 Incorrect 37 ms 7980 KB Output isn't correct
24 Incorrect 57 ms 9548 KB Output isn't correct
25 Incorrect 50 ms 8280 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 2644 KB Output isn't correct
2 Incorrect 2 ms 2644 KB Output isn't correct
3 Correct 39 ms 8524 KB Output is correct
4 Correct 42 ms 8488 KB Output is correct
5 Correct 50 ms 8792 KB Output is correct
6 Correct 192 ms 18220 KB Output is correct
7 Incorrect 2 ms 2644 KB Output isn't correct
8 Runtime error 4 ms 5204 KB Execution killed with signal 6
9 Correct 2 ms 2644 KB Output is correct
10 Correct 2 ms 2644 KB Output is correct
11 Correct 2 ms 2644 KB Output is correct
12 Correct 2 ms 2644 KB Output is correct
13 Correct 2 ms 2644 KB Output is correct
14 Incorrect 2 ms 2644 KB Output isn't correct
15 Incorrect 2 ms 2644 KB Output isn't correct
16 Runtime error 4 ms 5372 KB Execution killed with signal 6
17 Correct 2 ms 2644 KB Output is correct
18 Correct 2 ms 2644 KB Output is correct
19 Correct 2 ms 2644 KB Output is correct
20 Correct 2 ms 2696 KB Output is correct
21 Correct 3 ms 2772 KB Output is correct
22 Incorrect 2 ms 2644 KB Output isn't correct
23 Runtime error 38 ms 14624 KB Execution killed with signal 6
24 Incorrect 41 ms 8640 KB Output isn't correct
25 Correct 37 ms 8520 KB Output is correct
26 Correct 41 ms 8500 KB Output is correct
27 Correct 40 ms 8320 KB Output is correct
28 Correct 57 ms 8948 KB Output is correct
29 Correct 144 ms 16180 KB Output is correct
30 Incorrect 38 ms 8260 KB Output isn't correct
31 Runtime error 46 ms 16388 KB Execution killed with signal 6
32 Runtime error 53 ms 17632 KB Execution killed with signal 6
33 Correct 43 ms 8708 KB Output is correct
34 Correct 43 ms 8456 KB Output is correct
35 Correct 46 ms 8524 KB Output is correct
36 Correct 45 ms 8804 KB Output is correct
37 Correct 157 ms 18332 KB Output is correct
38 Incorrect 41 ms 8508 KB Output isn't correct
39 Runtime error 49 ms 17616 KB Execution killed with signal 6
40 Incorrect 43 ms 8780 KB Output isn't correct
41 Runtime error 41 ms 16460 KB Execution killed with signal 6
42 Correct 35 ms 8268 KB Output is correct
43 Correct 38 ms 8260 KB Output is correct
44 Correct 43 ms 8828 KB Output is correct
45 Correct 115 ms 16080 KB Output is correct
46 Incorrect 48 ms 8336 KB Output isn't correct
47 Incorrect 40 ms 8708 KB Output isn't correct
48 Runtime error 44 ms 16484 KB Execution killed with signal 6
49 Correct 39 ms 8688 KB Output is correct
50 Correct 40 ms 8580 KB Output is correct
51 Correct 40 ms 8728 KB Output is correct
52 Correct 38 ms 8448 KB Output is correct
53 Correct 139 ms 15988 KB Output is correct
54 Incorrect 45 ms 8532 KB Output isn't correct