Submission #420072

#TimeUsernameProblemLanguageResultExecution timeMemory
420072TricksterGame (IOI14_game)C++14
0 / 100
1 ms332 KiB
//Suleyman Atayew #include "game.h" #include <algorithm> #include <iostream> #include <string.h> #include <stdio.h> #include <vector> #include <bitset> #include <queue> #include <cmath> #include <map> #include <set> #define N 1510 #define ff first #define ss second #define pb push_back #define ll long long #define mod 1000000007 #define pii pair <int, int> #define sz(a) (int)(a.size()) ll bigmod(ll a, ll b) { if(b==0)return 1; ll ret = bigmod(a, b/2); return ret * ret % mod * (b%2 ? a : 1) % mod; } using namespace std; int D[N][N], arr[N], sz; void initialize(int n) { sz = n; for(int i = 0; i < n; i++) { arr[i] = n-1; for(int h = 0; h < n; h++) if(i != h) D[i][h] = 1; } } int hasEdge(int u, int v) { if(D[u][v] == 2) return 1; if(D[u][v] == 0) return 0; arr[u]--, arr[v]--; D[u][v] = D[v][u] = 0; if(arr[u] == 1) { int x = 0; for(int i = 0; i < sz; i++) if(D[i][u] == 1) x = i; arr[x]--; D[x][u] = D[u][x] = 2; for(int i = 0; i < sz; i++) { if(i == x) continue; arr[i] -= D[i][u]; D[u][i] = D[i][u] = 0; } } if(arr[v] == 1) { int x = 0; for(int i = 0; i < sz; i++) if(D[i][v] == 1) x = i; arr[x]--; D[x][v] = D[v][x] = 2; for(int i = 0; i < sz; i++) { if(i == x) continue; arr[i] -= D[i][v]; D[v][i] = D[i][v] = 0; } } if(arr[u] == 0 || arr[v] == 0) return 1; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...