Submission #1299211

#TimeUsernameProblemLanguageResultExecution timeMemory
1299211scalifrastico_098Game (IOI14_game)C++20
0 / 100
1095 ms332 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
const int y=1500;
int rt[y], ik=0;
struct DSU
{
    vector<int> t, p;
    DSU(int n)
    {
        t.assign(n, 1); p.resize(n); iota(p.begin(), p.end(), 0);
    }
    int find(int x)
    {
        if(x==p[x])return x; return p[x]=find(p[x]);
    }
    bool uni(int x, int y)
    {
        int a=find(x), b=find(y); if(a==b)return true; if(t[a]<t[b]) swap(a, b);
        t[a]+=t[b]; p[b]=a;
    }
};
DSU r(1500);
void initialize(int n) {
    for(int i=0; i<n; i++){if(i%2==0)rt[i]=0; else rt[i]=1;} ik=n-2; 
}
int hasEdge(int u, int v) {

    if(r.find(u)!=r.find(v)&&ik>0){ r.uni(u, v); ik--; return 1;} 
    return rt[max(u, v)];
}

Compilation message (stderr)

game.cpp: In member function 'bool DSU::uni(int, int)':
game.cpp:20:25: warning: control reaches end of non-void function [-Wreturn-type]
   20 |         t[a]+=t[b]; p[b]=a;
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...