답안 #1064070

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1064070 2024-08-18T08:57:41 Z TheQuantiX 장난감 기차 (IOI17_train) C++17
12 / 100
6 ms 2140 KB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

constexpr ll INF = 1000000000000000000LL;

ll n, m, q, k, x, y, a, c;
vector<ll> G[5000];
vector<ll> Gr[5000];

vector<int> get_total(vector<int> a, vector<int> r, vector<int> u, vector<int> v, vector<ll> cnt) {
    queue<ll> q;
    vector<int> vis(n);
    for (int i = 0; i < n; i++) {
        if (r[i]) {
            q.push(i);
        }
    }
    while (!q.empty()) {
        ll x = q.front();
        q.pop();
        if (vis[x]) {
            continue;
        }
        vis[x] = 1;
        for (auto i : G[x]) {
            if (a[i] && !vis[i]) {
                q.push(i);
            }
            if (!a[i]) {
                cnt[i]--;
                if (cnt[i] == 0 && !vis[i]) {
                    q.push(i);
                }
            }
        }
    }
    return vis;
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
    n = a.size();
    m = u.size();
    vector<ll> cnt(n);
    vector<int> ans(n);
    for (int i = 0; i < n; i++) {
        G[i].clear();
        Gr[i].clear();
    }
    for (int i = 0; i < m; i++) {
        cnt[u[i]]++;
        G[v[i]].push_back(u[i]);
        Gr[u[i]].push_back(v[i]);
    }
    vector<int> total = get_total(a, r, u, v, cnt);
    // for (int i = 0; i < n; i++) {
    //     cout << total[i] << ' ';
    // }
    // cout << '\n';
    vector<int> possible(n);
    auto cnt1 = cnt;
    for (int i = 0; i < n; i++) {
        if (r[i]) {
            bool fl;
            if (a[i]) {
                fl = 0;
                for (int j : Gr[i]) {
                    if (total[j]) {
                        fl = 1;
                        break;
                    }
                }
            }
            else {
                fl = 1;
                for (int j : Gr[i]) {
                    if (!total[j]) {
                        fl = 0;
                        break;
                    }
                }
            }
            possible[i] = fl;
        }
    }
    return get_total(a, possible, u, v, cnt);
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 1368 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Incorrect 1 ms 604 KB 3rd lines differ - on the 4th token, expected: '0', found: '1'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 1884 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1628 KB Output is correct
2 Correct 6 ms 1880 KB Output is correct
3 Incorrect 5 ms 2140 KB 3rd lines differ - on the 108th token, expected: '0', found: '1'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 1880 KB Output is correct
2 Correct 6 ms 1884 KB Output is correct
3 Correct 6 ms 1912 KB Output is correct
4 Correct 6 ms 1884 KB Output is correct
5 Correct 1 ms 604 KB Output is correct
6 Correct 5 ms 1372 KB Output is correct
7 Correct 4 ms 1584 KB Output is correct
8 Correct 3 ms 1628 KB Output is correct
9 Correct 4 ms 1588 KB Output is correct
10 Correct 1 ms 860 KB Output is correct
11 Correct 4 ms 1368 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 1368 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -