Submission #755731

#TimeUsernameProblemLanguageResultExecution timeMemory
755731DJeniUpMouse (info1cup19_mouse)C++17
48 / 100
155 ms288 KiB
#include "bits/stdc++.h" #include "grader.h" int query(vector<int> v); typedef long long ll; #define pb push_back vector<int>v,a[5],h,l; ll f[307]; void solve(int n){ for(int i=1;i<=n;i++){ v.pb(i); } ll x=query(v); if(x==n)return ; for(int i=1;i<n;i++){ swap(v[0],v[i]); ll y=query(v); a[y-x+2].pb(i); swap(v[0],v[i]); } if(a[2].size()==0 && a[3].size()==0 && a[4].size()==0){ f[0]=1; for(auto it:a[0]){ f[it]=1; } }else{ for(auto it:a[1]){ f[it]=1; } if(a[4].size()==1){ swap(v[0],v[a[4][0]]); f[0]=1; f[a[4][0]]=1; x+=2; }else{ swap(v[0],v[a[3][0]]); swap(v[0],v[a[3][1]]); ll y=query(v); if(y==n)return ; if(y-x==2){ f[0]=1; f[a[3][0]]=1; x=y; }else if(y-x==3){ f[0]=1; f[a[3][0]]=1; f[a[3][1]]=1; x=y; }else{ swap(v[0],v[a[3][1]]); swap(v[0],v[a[3][0]]); swap(v[0],v[a[3][1]]); swap(v[0],v[a[3][0]]); y=query(v); if(y==n)return ; if(y-x==2){ f[0]=1; f[a[3][1]]=1; x=y; }else if(y-x==3){ f[0]=1; f[a[3][0]]=1; f[a[3][1]]=1; x=y; } } } } h.pb(0); while(h.size()>0){ h.clear(); for(int i=0;i<n;i++){ if(f[i]==0){ h.pb(i); //cout<<i<<" "; } } for(int i=1;i<h.size();i++){ swap(v[h[i-1]],v[h[i]]); } if(h.size()!=2)swap(v[h[0]],v[h[h.size()-1]]); ll y=query(v); ll y1=y; if(y==n)return ; if(x!=y){ for(auto i:h){ swap(v[0],v[i]); ll z=query(v); if(z-y==-2){ f[i]=1; y1--; } swap(v[0],v[i]); if(y1==x)break; } } x=y; } return ; }

Compilation message (stderr)

mouse.cpp: In function 'void solve(int)':
mouse.cpp:88:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |         for(int i=1;i<h.size();i++){
      |                     ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...