2002でレッツゴー(3)
Ozyさんが書いたコード(http://d.hatena.ne.jp/Ozy/20060523)を一部参考に、
自分の書いたコードを全体的に書き直してみた。
ただ、Ozyさんが言うように、どこまでも削れそうな気がしてならない。
結果としてすんごい疲れる(;´Д`)
今日はこの辺でやめておこう。
p(int*p,int*q){return*p-*q;} short s[2006],c[2]; m,a,n,f,g,o,r; t(x,y){ *c=r+x/2;c[1]=o+y/2; return~x%2*bsearch(c,s,n,4,p); } main(b){ for(;scanf("%d",&n),n;printf("%d\n",m/2)){ for(a=m=n*2;m;)scanf("%hd",s+--m); for(qsort(s,n,4,p);a;) for(o=s[--a],r=s[b=--a];b; m+=t(f-g,g+f)&&t(f+g,g-f)) g=s[--b]-o,f=s[--b]-r; } }