Submission #788339

#TimeUsernameProblemLanguageResultExecution timeMemory
788339mindiyakGame (IOI14_game)C++14
0 / 100
1 ms396 KiB
#include "game.h"
#include <iostream>
#include <vector>
#include <set>
using namespace std;

int N;

vector<int> parents(1502);
vector<int> connected(1502,0);
vector<set<int>> asked(1502,set<int>());

int find_parent(int pos){
    if(parents[pos] == pos){
        return pos;
    }return find_parent(parents[pos]);
}

void initialize(int n) {
    for(int i=0;i<n;i++){
        parents[i] = i;
    }
    N = n;
}

int hasEdge(int u, int v) {
    if(u==v){
        return 1;
    }
    if(find_parent(u) == find_parent(v)){
        return 1;
    }
    if(asked[u].size()<asked[v].size()){
        swap(u,v);
    }
    if(asked[u].size() == N-2){
        parents[u] = v;
        asked[u].insert(v);
        asked[v].insert(u);
        return 1;
    }
    asked[u].insert(v);
    asked[v].insert(u);
    return 0;
}

Compilation message (stderr)

game.cpp: In function 'int hasEdge(int, int)':
game.cpp:36:24: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(asked[u].size() == N-2){
      |        ~~~~~~~~~~~~~~~~^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...