제출 #856455

#제출 시각아이디문제언어결과실행 시간메모리
856455nninGame (IOI14_game)C++14
100 / 100
251 ms26708 KiB
#include<bits/stdc++.h>
#define ll long long
#define pii pair<ll,int>
using namespace std;

int n, dsu[1505], sz[1505], ct[1505][1505];

int par(int x) {
    if(dsu[x]==-1) return x;
    return dsu[x] = par(dsu[x]);
}

void initialize(int N) {
    n = N;
    for(int i=0;i<n;i++) {
        dsu[i] = -1;
        sz[i] = 1;
    }
}

int hasEdge(int u, int v) {
    u = par(u);
    v = par(v);
    if(ct[u][v]+1<sz[u]*sz[v]) {
        ct[u][v]++;
        ct[v][u]++;
        return 0;
    }
    dsu[v] = u;
    sz[u] += sz[v];
    for(int i=0;i<n;i++) {
        if(par(i)!=i || i==u) continue;
        ct[u][i] = ct[i][u] = ct[u][i]+ct[v][i];
    }
    return 1;
} 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...