Submission #56406

#TimeUsernameProblemLanguageResultExecution timeMemory
56406WA_TLEScales (IOI15_scales)C++14
71.43 / 100
4 ms876 KiB
#include "scales.h" void init(int T) {} void orderCoins(void){ int i; //7回をできた。 //まずは4つを3回の天秤で //1個加える //1個加える //getMedianマジ有用 文字数短いしマジ神 //NextLightestは何のためにうまれてきたのだろうか? int ma=getMedian(1,2,3); int ans[6]={0};//とりあえず4つ決定する ans[0]=getLightest(1+(ma%3),1+((1+ma)%3),4); if(ans[0]==4){ ans[0]=4; ans[1]=getLightest(1,2,3); ans[2]=ma; ans[3]=(ans[1]^ans[2]);//ビット演算で3つの内違うものを選んでいる }else{ int tg=(ma^ans[0]);//tgはans[0]でもmaでもない方 //ここでans[0]<ma<tgがわかっているのに注意 ans[2]=getMedian(ma,4,tg); if(ans[2]==ma){ans[1]=4; ans[3]=tg;} if(ans[2]==4) {ans[1]=ma;ans[3]=tg;} if(ans[2]==tg){ans[1]=ma;ans[3]=4; } } //ここで4つがわかった あとはこれに挿入(意味深)する int ke=getMedian(ans[0],ans[3],5); if(ke==ans[0]){ for(i=4;i>0;i--){ans[i]=ans[i-1];} ans[0]=5; }else if(ke==ans[3]){ ans[4]=5; }else{ ke=getMedian(ans[1],ans[2],5); if(ke==ans[1]){ for(i=4;i>1;i--){ans[i]=ans[i-1];} ans[1]=5; }else if(ke==5){ for(i=4;i>2;i--){ans[i]=ans[i-1];} ans[2]=5; }else{ for(i=4;i>3;i--){ans[i]=ans[i-1];} ans[3]=5; } } int ka=getMedian(ans[1],ans[3],6); int ku; if(ka==ans[1]){ ku=getLightest(ans[0],ans[1],6); if(ku==6){for(i=5;i>0;i--){ans[i]=ans[i-1];}ans[0]=6;} else{for(i=5;i>1;i--){ans[i]=ans[i-1];}ans[1]=6;} }else if(ka==6){ ku=getLightest(ans[2],ans[3],6); if(ku==6){for(i=5;i>2;i--){ans[i]=ans[i-1];}ans[2]=6;} else{for(i=5;i>3;i--){ans[i]=ans[i-1];}ans[3]=6;} }else{ ku=getMedian(ans[4],ans[0],6); if(ku==6){for(i=5;i>4;i--){ans[i]=ans[i-1];}ans[4]=6;} else{ans[5]=6;} } answer(ans); return; } /* 4 1 4 3 2 6 5 5 2 1 6 3 4 6 2 3 4 5 1 3 5 6 1 4 2 */

Compilation message (stderr)

In file included from grader.c:2:0:
graderlib.c: In function 'void answer(int*)':
graderlib.c:53:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
     if (_ghksjhdfkae19ga_ > 1) 
     ^~
graderlib.c:56:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  for (i = 0; i < 6; i++) {
  ^~~
scales.cpp: In function 'void init(int)':
scales.cpp:2:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {}
               ^
#Verdict Execution timeMemoryGrader output
Fetching results...