問題はこちら
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