제출 #1271132

#제출 시각아이디문제언어결과실행 시간메모리
1271132dizzy_groovyGame (APIO22_game)C++20
0 / 100
0 ms408 KiB
// #define _GLIBXX_DEBUG
#include "game.h"

#include <bits/stdc++.h>

using namespace std;

vector<int> mn, mx;
vector<vector<int>> gr, grr;
int kk;

void init(int n, int k) {
    kk = k;
    mn.resize(n, k + 1);
    mx.resize(n, 0);
    gr.resize(n, vector<int> (0));
    grr.resize(n, vector<int> (0));
    mn.assign(n, k + 1);
    mx.assign(n, 0);
    gr.assign(n, vector<int> (0));
    grr.assign(n, vector<int> (0));
    for (int i = 0; i < k; i++) {
        mn[i] = i + 1;
        mx[i] = i + 1;
    }   
}

int check_vert(int v);

int check_edge(int u, int v) {
    if (mn[v] <= mx[u]) return 1;
    // return 1;
    if (mn[u] > mn[v]) {
        mn[u] = mn[v];
        return 1;
        if (check_vert(u)) return 1;
    }
    // return 1;
    if (mx[v] < mx[u]) {
        mx[v] = mx[u];
        return 1;
        if (check_vert(v)) return 1;
    }
    return 0;
}

int check_vert(int v) {
    return 1;
    if (v < kk) return 0; 
    if (mn[v] <= mx[v]) return 1;
    for (auto &i : gr[v]) {
        if (check_edge(v, i)) return 1;
    }
    for (auto &i : grr[v]) {
        if (check_edge(i, v)) return 1;
    }
    return 0;
}

int add_teleporter(int u, int v) {
    // return 1;
    gr[u].push_back(v);
    grr[v].push_back(u);
    // return 1;
    return check_edge(u, v);
}
#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...