Submission #383107

# Submission time Handle Problem Language Result Execution time Memory
383107 2021-03-28T20:22:59 Z ScarletS Game (IOI14_game) C++17
0 / 100
2 ms 364 KB
#include <bits/stdc++.h>
using namespace std;

const int N = 1500;
int n, pt[N], sz[N], e[N][N];

int find(int x)
{
    if (x==pt[x])
        return x;
    return pt[x] = find(pt[x]);
}

void unite(int x, int y)
{
    if (sz[y]>sz[x])
        swap(x,y);
    pt[y]=x;
    sz[x]+=sz[y];
    for (int i=0;i<n;++i)
    {
        e[x][i]+=e[y][i];
        e[i][x]=e[x][i];
    }
}

int hasEdge(int u, int v)
{
    int x = find(u), y = find(v);
    if (x == y)
        return 1;
    if (e[x][y]==1)
    {
        unite(x,y);
        return 1;
    }
    --e[x][y];
    return 0;
}

void initialize(int k)
{
    n=k;
    for (int i=0;i<n;++i)
    {
        pt[i]=i;
        sz[i]=1;
    }
    for (int i=0;i<n;++i)
        for (int j=0;j<n;++j)
            e[i][j]=1;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 2 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Incorrect 1 ms 364 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 2 ms 364 KB Output is correct
7 Incorrect 1 ms 364 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Incorrect 1 ms 364 KB Output isn't correct
8 Halted 0 ms 0 KB -