Submission #315791

#TimeUsernameProblemLanguageResultExecution timeMemory
315791daniel920712Mouse (info1cup19_mouse)C++14
33.41 / 100
2310 ms128888 KiB
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <algorithm> #include "grader.h" using namespace std; vector < int > how; bool have[500]={0}; bool have2[500]={0}; int xx[500]; map < vector < int > , int > all; int Query(vector < int > tt) { if(all.find(tt)==all.end()) all[tt]=query(tt); return all[tt]; } void solve(int N) { int a,b,c,now,i,j,jj,kk,k,ok,where,cc; how.clear(); for(i=0;i<N;i++) { how.push_back(i+1); have[i+1]=0; xx[i+1]=i+1; } //random_shuffle(xx+1,xx+N+1); for(jj=1;jj<=N;jj++) { j=xx[jj]; if(!have[j]) { how[0]=j; now=0; for(kk=1;kk<=N;kk++) { k=xx[kk]; if(!have[k]&&k!=j) { how[now+1]=k; now++; } } } a=Query(how); if(a==N) return; ok=1; where=-1; for(k=1;k<N;k++) { swap(how[0],how[k]); b=Query(how); if(b==N) return; swap(how[0],how[k]); if(a>b) { where=k; continue; } else { ok=0; break; } } if(ok) { have[how[0]]=1; have2[0]=1; cc=0; break; } else if(where!=-1) { have[how[where]]=1; have2[where]=1; cc=where; break; } } //printf("%d %d\n",cc,how[cc]); for(i=0;i<N;i++) { if(i==cc) continue; for(jj=1;jj<=N;jj++) { j=xx[jj]; if(!have[j]) { how[i]=j; now=0; for(kk=1;kk<=N;kk++) { k=xx[kk]; if(!have[k]&&k!=j) { if(i+now+1==cc) now++; if(i+now+1==N) continue; how[i+now+1]=k; now++; } } } a=Query(how); if(a==N) return; swap(how[i],how[cc]); b=Query(how); if(b==N) return; swap(how[i],how[cc]); if(a-b==2) { have[how[i]]=1; break; } } } }

Compilation message (stderr)

mouse.cpp: In function 'void solve(int)':
mouse.cpp:20:13: warning: unused variable 'c' [-Wunused-variable]
   20 |     int a,b,c,now,i,j,jj,kk,k,ok,where,cc;
      |             ^
mouse.cpp:20:40: warning: 'cc' may be used uninitialized in this function [-Wmaybe-uninitialized]
   20 |     int a,b,c,now,i,j,jj,kk,k,ok,where,cc;
      |                                        ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...