Submission #280176

#TimeUsernameProblemLanguageResultExecution timeMemory
280176SamAndGame (IOI14_game)C++17
0 / 100
1 ms384 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
#define m_p make_pair
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
typedef long long ll;
const int N = 1503;

int n;
int p[N];
int q[N][N];

int fi(int x)
{
    if (x == p[x])
        return x;
    return p[x] = fi(p[x]);
}

void initialize(int n)
{
    ::n = n;
    for (int i = 1; i <= n; ++i)
        p[i] = i;
    for (int x = 1; x <= n; ++x)
    {
        for (int y = 1; y <= n; ++y)
        {
            if (x == y)
                continue;
            q[x][y] = 1;
        }
    }
}

int hasEdge(int x, int y)
{
    ++x;
    ++y;
    x = fi(x);
    y = fi(y);
    if (x == y)
        return 0;
    if (q[x][y] > 1)
        return 0;
    --q[x][y];
    --q[y][x];
    p[x] = y;
    for (int i = 1; i <= n; ++i)
        q[y][i] += q[x][i];
    return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...