제출 #39274

#제출 시각아이디문제언어결과실행 시간메모리
39274faustaadp게임 (IOI14_game)C++14
0 / 100
0 ms20212 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...