Submission #30467

#TimeUsernameProblemLanguageResultExecution timeMemory
30467inqrGame (IOI14_game)C++14
0 / 100
3 ms19668 KiB
#include "game.h" #include <bits/stdc++.h> #define pb push_back #define mp make_pair #define rt insert #define st first #define nd second #define ll long long #define pii pair < int , int > #define DB printf("debug\n"); #define umax( x , y ) x = max( x , (y) ) #define umin( x , y ) x = min( x , (y) ) #define all(x) x.begin() , x.end() using namespace std; int conto[1505]; int conto2[1505][1505]; int root[1505]; int N,totno,maxque,maxyes,maxno; int rootfind(int a){ if(root[a]==a)return a; return root[a]=rootfind(root[a]); } void merge(int a,int b){ int x=a,y=b; root[a]=root[b]=max(rootfind(a),rootfind(b)); } void initialize(int n) { N=n; maxque=(n)*(n-1)/(2); maxyes=n-1; maxno=maxque-maxyes; memset(conto2,1,sizeof(conto2)); for(int i=0;i<n;i++){ root[n]=n; conto[n]=0; conto2[n][n]=0; } //printf("n=%d maxque=%d maxyes=%d maxno=%d\n",n,maxque,maxyes,maxno); } int hasEdge2(int u,int v){ int ur=rootfind(u),uv=rootfind(v); if(conto2[ur][uv]==1){ merge(u,v); int rn=rootfind(u); for(int i=0;i<N;i++){ if(rootfind(i)==rn){ conto2[i][rn]=conto2[rn][i]=conto2[ur][rn]+conto2[uv][rn]; } } return 1; } conto2[ur][uv]--; conto2[uv][ur]--; return 0; } int hasEdge(int u, int v) { return hasEdge2(u,v); conto[max(u,v)]++; if(conto[max(u,v)]==max(u,v))return 1; return 0; }

Compilation message (stderr)

game.cpp: In function 'void merge(int, int)':
game.cpp:24:6: warning: unused variable 'x' [-Wunused-variable]
  int x=a,y=b;
      ^
game.cpp:24:10: warning: unused variable 'y' [-Wunused-variable]
  int x=a,y=b;
          ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...