Submission #422155

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

using namespace std;

#define MAXN 100000001

typedef vector<int> vi;

long n;

long blocks[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;
        }
        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...