답안 #56406

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
56406 2018-07-11T08:36:38 Z WA_TLE 저울 (IOI15_scales) C++14
71.4286 / 100
4 ms 876 KB
#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

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) {}
               ^
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 256 KB Output is partially correct
2 Partially correct 2 ms 496 KB Output is partially correct
3 Partially correct 3 ms 496 KB Output is partially correct
4 Partially correct 2 ms 496 KB Output is partially correct
5 Partially correct 3 ms 496 KB Output is partially correct
6 Partially correct 2 ms 496 KB Output is partially correct
7 Partially correct 4 ms 496 KB Output is partially correct
8 Partially correct 2 ms 676 KB Output is partially correct
9 Partially correct 2 ms 676 KB Output is partially correct
10 Partially correct 3 ms 676 KB Output is partially correct
11 Partially correct 2 ms 808 KB Output is partially correct
12 Partially correct 3 ms 808 KB Output is partially correct
13 Partially correct 3 ms 808 KB Output is partially correct
14 Partially correct 2 ms 808 KB Output is partially correct
15 Partially correct 2 ms 808 KB Output is partially correct
16 Partially correct 2 ms 808 KB Output is partially correct
17 Partially correct 2 ms 808 KB Output is partially correct
18 Partially correct 2 ms 876 KB Output is partially correct
19 Partially correct 3 ms 876 KB Output is partially correct
20 Partially correct 3 ms 876 KB Output is partially correct
21 Partially correct 1 ms 876 KB Output is partially correct
22 Partially correct 2 ms 876 KB Output is partially correct
23 Partially correct 3 ms 876 KB Output is partially correct
24 Partially correct 2 ms 876 KB Output is partially correct
25 Partially correct 2 ms 876 KB Output is partially correct
26 Partially correct 2 ms 876 KB Output is partially correct
27 Partially correct 3 ms 876 KB Output is partially correct
28 Partially correct 2 ms 876 KB Output is partially correct
29 Partially correct 2 ms 876 KB Output is partially correct
30 Partially correct 3 ms 876 KB Output is partially correct
31 Partially correct 2 ms 876 KB Output is partially correct
32 Partially correct 3 ms 876 KB Output is partially correct
33 Partially correct 2 ms 876 KB Output is partially correct
34 Partially correct 3 ms 876 KB Output is partially correct
35 Partially correct 2 ms 876 KB Output is partially correct
36 Partially correct 2 ms 876 KB Output is partially correct
37 Partially correct 3 ms 876 KB Output is partially correct
38 Partially correct 3 ms 876 KB Output is partially correct
39 Partially correct 3 ms 876 KB Output is partially correct
40 Partially correct 3 ms 876 KB Output is partially correct