Submission #31714

#TimeUsernameProblemLanguageResultExecution timeMemory
31714top34051Game (IOI14_game)C++14
15 / 100
0 ms19660 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
#define maxn 1505

int n, ok;
int cnt[maxn];
int edge[maxn][maxn];

void initialize(int N) {
    int i,x;
    n = N;
    if(n>4) {
        for(i=0;i<n-1;i++) {
            do {
                x = rand()%n;
            }while(x==i || edge[i][x]);
    //        printf("edge %d %d\n",x,i);
            edge[i][x] = edge[x][i] = 1;
        }
    }
    else {
        ok = n*(n-1)/2 - (n-1);
        memset(cnt,0,sizeof(cnt));
    }
}

int hasEdge(int u, int v) {
    if(n>4) return edge[u][v];
    if(ok && cnt[u]+1<n-1 && cnt[v]+1!=n-1) {
        cnt[u]++; cnt[v]++; ok--;
        return 0;
    }
    return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...