メモ

yukicoderでゆるふわgolf

yukicoder No.571 3人兄弟(その2)

問題はこちら
No.571 3人兄弟(その2) - yukicoder

その1と同様
a[身長][体重]=人 という配列を作っても良いが
a[身長*(大きな数)-体重]=人 とすることで1次元配列にできる

a[30010],t,s;
main(){
	for(int i=1;i<=3;i++){
		scanf("%d%d",&t,&s);
		a[t*101-s]=i;
	}
	for(int i=30000;--i;)if(a[i])printf("%c\n",'A'+a[i]-1);
}

体重の最大値が100なので(大きな数)は101以上である必要があるように思えるが、実際には体重の値は51通りしかないので、51以上の値でよい。
これにより配列サイズが126*257以下で良くなり、1B短縮できる

a['~~'],p,q;main(i){for(i=1<<14;--i;a[i]&&printf("%c\n",68+a[i]))a[~scanf("%d%d",&p,&q)?p*64-q:0]=-i%4;}

104B