# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
39275 |
2018-01-10T13:41:26 Z |
faustaadp |
Game (IOI14_game) |
C++14 |
|
0 ms |
20212 KB |
#include "game.h"
#include<bits/stdc++.h>
#define ll int
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll N,i,j,b[1551][1551],be[1551],tt,a[1551],hv;
void initialize(int n) {
N=n;
for(i=0;i<N;i++)
{
a[i]=N-1;
for(j=0;j<N;j++)
b[i][j]=1;
}
}
void rmt(ll aa)
{
be[aa]=tt;
ll ii;
for(ii=0;ii<N;ii++)
if(b[min(ii,aa)][max(ii,aa)]==1&&be[ii]!=tt)
rmt(ii);
}
int hasEdge(int u, int v) {
tt++;
if(u>v)
swap(u,v);
b[u][v]=0;
a[u]--;
a[v]--;
// memset(be,0,sizeof(be));
// rmt(u);
if(a[u]==0||a[v]==0)
{
// b[u][v]=1;
return 1;
}
//if(a[u]==1)
{
for(i=0;i<N;i++)
{
if(b[min(i,u)][max(i,u)]==1&&i!=u)
{
hv=i;
}
}
// cout<<hv<<"hv\n";
// cout<<min(hv,v)<<"-"<<max(hv,v)<<"\n";
// cout<<b[1][3]<<"b13\n";
if(b[min(hv,v)][max(hv,v)]==0)
return 1;
}
//if(a[v]==1)
{
for(i=0;i<N;i++)
{
if(b[min(i,v)][max(i,v)]==1&&i!=v)
hv=i;
}
// cout<<hv<<"hv\n";
if(b[min(hv,u)][max(hv,u)]==0)
return 1;
}
// if(a[u]>1&&a[v]>1)
return 0;
// else
// return 1;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
20212 KB |
Output is correct |
2 |
Incorrect |
0 ms |
20212 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
20212 KB |
Output is correct |
2 |
Incorrect |
0 ms |
20212 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
20212 KB |
Output is correct |
2 |
Incorrect |
0 ms |
20212 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |