제출 #1229224

#제출 시각아이디문제언어결과실행 시간메모리
1229224kl0989e게임 (IOI14_game)C++20
100 / 100
226 ms16056 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pi pair<int, int>
#define pl pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(),(x).end()

const int maxn=1510;

int n;
vi head(maxn);
vector<vi> con(maxn,vi(maxn,1));

int get(int a) {
    return (a==head[a]?a:head[a]=get(head[a]));
}

void initialize(int _n) {
    n=_n;
    iota(all(head),0);
    for (int i=0; i<n; i++) {
        con[i][i]=0;
    }
}

int hasEdge(int u, int v) {
    int uu=get(u),vv=get(v);
    con[uu][vv]--;
    con[vv][uu]--;
    if (con[uu][vv]==0) {
        head[uu]=vv;
        for (int i=0; i<n; i++) {
            con[i][vv]+=con[i][uu];
            con[vv][i]+=con[i][uu];
            con[i][uu]=0;
            con[uu][i]=0;
        }
        return 1;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...