제출 #1208474

#제출 시각아이디문제언어결과실행 시간메모리
1208474fskarica게임 (APIO22_game)C++20
60 / 100
4027 ms38824 KiB
#include "game.h"
#include <bits/stdc++.h>

using namespace std;

const int INF = 1e9;
const int MAX = 3e5 + 5;

int n, k;
int in[MAX], out[MAX];
vector<int> veze[MAX], vezeRev[MAX];

void init(int N, int K) {
    n = N;
    k = K;

    for (int i = 0; i < n; i++) {
        if (i < k) {
            in[i] = i;
            out[i] = i;
        }
        else {
            in[i] = -1;
            out[i] = INF;
        }
    }
}

void rekIn(int u, int val) {
    if (in[u] >= val) return;

    in[u] = val;
    for (int v : veze[u]) {
        rekIn(v, val);
    }
}

void rekOut(int u, int val) {
    if (out[u] <= val) return;

    out[u] = val;
    for (int v : vezeRev[u]) {
        rekOut(v, val);
    }
}

int add_teleporter(int x, int y) {
    if (x < k && y < k) return x >= y;

    veze[x].push_back(y);
    vezeRev[y].push_back(x);

    rekIn(y, in[x]);
    rekOut(x, out[y]);

    return in[x] >= out[y];
}

//int main() {
//    int n, k;
//    cin >> n >> k;
//    init(n, k);
//
//    while (true) {
//        int x, y;
//        cin >> x >> y;
//
//        if (add_teleporter(x, y)) break;
//    }
//}
#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...