이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
if(b[min(hv,v)][max(hv,v)]==1)
return 0;
}
}
// cout<<hv<<"hv\n";
// cout<<min(hv,v)<<"-"<<max(hv,v)<<"\n";
// cout<<b[1][3]<<"b13\n";
}
//if(a[v]==1)
{
for(i=0;i<N;i++)
{
if(b[min(i,v)][max(i,v)]==1&&i!=v)
{
hv=i;
if(b[min(hv,u)][max(hv,u)]==1)
return 0;
}
}
// cout<<hv<<"hv\n";
}
// if(a[u]>1&&a[v]>1)
return 1;
// else
// return 1;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |