Submission #422154

#TimeUsernameProblemLanguageResultExecution timeMemory
422154daanolavGame (IOI14_game)C++14
0 / 100
1 ms284 KiB
#include "game.h"
#include <vector>
#include <tuple>

using namespace std;

#define MAXN 1000001

typedef vector<int> vi;

int n;

int blocks[MAXN];
bool hasConnect[MAXN];

int canceled = 0;



void initialize(int n) {
    ::n = n;
}

int hasEdge(int u,int v) {
    if(blocks[u] >= (n - 3) || blocks[v] >= (n - 3)) {

        if(canceled < 2 && (blocks[u] <= (n - 3) && blocks[v] <= (n - 3))) {
            ++canceled;

            //cerr << u << " is " << blocks[u] << endl;
            //cerr << v << " is " << blocks[v] << endl;




            ++blocks[u];
            ++blocks[v];

            return 0;
        }
        hasConnect[u] = true;
        hasConnect[v] = true;
        return 1;
    }
    ++blocks[u];
    ++blocks[v];
    //cerr << u << " is now " << blocks[u] << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...