Submission #16551

#TimeUsernameProblemLanguageResultExecution timeMemory
16551gs13068Scales (IOI15_scales)C++98
0 / 100
0 ms1128 KiB
#include "scales.h" #include <cstdio> #include <algorithm> void init(int T){} int p[777]; int t[7]; int testMed(int a,int b,int c) { int i,j,k,r=0; for(i=0;i<720;i++)if(p[i]) { for(j=1;j<=6;j++)t[j]=j; k=i; for(j=1;j<=6;j++) { std::swap(t[j],t[k%j+1]); k/=j; } if((t[a]<t[b]&&t[b]<t[c])||(t[a]>t[b]&&t[b]>t[c]))r++; } return r; } void orderCoins() { int i,j,k,a,b,c,r=0; a=getLightest(1,2,3); b=getNextLightest(4,5,6,a); for(i=0;i<720;i++) { for(j=1;j<=6;j++)t[j]=j; k=i; for(j=1;j<=6;j++) { std::swap(t[j],t[k%j+1]); k/=j; } p[i]=0; k=0; for(j=1;j<=3;j++)if(!k||t[j]<t[k])k=j; if(k!=a)continue; k=0; for(j=4;j<=6;j++)if(t[j]>t[a]&&(!k||t[j]<t[k]))k=j; if(!k)for(j=4;j<=6;j++)if(!k||t[j]<t[k])k=j; if(k!=b)continue; p[i]=1; r++; } printf("%d %d\n",a,b); for(;r>1;) { for(i=1;i<=6;i++) { for(j=1;j<i;j++) { for(k=1;k<j;k++)if(testMed(i,j,k)<=(r+2)/3&&testMed(j,k,i)<=(r+2)/3&&testMed(k,i,j)<=(r+2)/3)printf("%d %d %d\n",i,j,k); if(k<j)break; } if(j<i)break; } if(r==80)i=2,j=5,k=6; printf("!!!! %d %d %d\n",testMed(i,j,k),testMed(j,k,i),testMed(k,i,j)); b=getMedian(i,j,k); if(b==i)a=j,c=k; if(b==j)a=i,c=k; if(b==k)a=i,c=j; r=0; for(i=0;i<720;i++)if(p[i]) { for(j=1;j<=6;j++)t[j]=j; k=i; for(j=1;j<=6;j++) { std::swap(t[j],t[k%j+1]); k/=j; } p[i]=0; if((t[a]<t[b]&&t[b]<t[c])||(t[a]>t[b]&&t[b]>t[c])) { p[i]=1; r++; } } } }

Compilation message (stderr)

scales.cpp:5:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T){}
               ^
scales.cpp: In function 'void orderCoins()':
scales.cpp:92:51: warning: 'c' may be used uninitialized in this function [-Wmaybe-uninitialized]
    if((t[a]<t[b]&&t[b]<t[c])||(t[a]>t[b]&&t[b]>t[c]))
                                                   ^

#Verdict Execution timeMemoryGrader output
Fetching results...