PKU 1940 Polygon Programming with Ease
http://poj.org/problem?id=1940
http://poj.org/problem?id=1939と逆のことをやらせたいらしい。
ちなみに1939はn個の点が与えられるので、与えられた順番に点の中点を出力するというような問題でした。
小さいケースで式変形して規則性を見つけました。
pair<ll,ll> in[50000]; main(){ int n; while(~scanf("%d",&n)){ rep(i,n)cin>>in[i].F>>in[i].S; cout<<n; rep(i,n){ ll o=0; rep(j,n){ if(j%2)o-=in[(i+j)%n].F; else o+=in[(i+j)%n].F; } cout<<' '<<o<<".000000 "; o=0; rep(j,n){ if(j%2)o-=in[(i+j)%n].S; else o+=in[(i+j)%n].S; } cout<<o<<".000000"; } cout<<endl; } }