- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
// 2002 Probrem A
// Last update 2004.6.23
#include <stdio.h>
int dist(int a, int b); // 距離を求める関数 √まで求めなくてもいい
int main(void)
{
int N,d,i,j,x,y,max,dx,dy,tx,ty;
scanf("%d", &N);
for(i=0; i<N; i++){
x=y=tx=ty=0; // (x,y)現在の座標 (tx,ty)宝の座標
max=0;
while(1){
scanf("%d %d", &dx, &dy);
if(dx==0 && dy==0) break;
// printf("(%d,%d) ", dx, dy);
// 現在の座標を更新
x+=dx; y+=dy;
// 距離を求めて最大の場合更新
d=dist(x, y);
if(max<d){
max=d;
tx=x; ty=y;
}else if(max==d){ // 同じ距離の場合はx座標が大きい方にする
if(tx<x){
tx=x; ty=y;
}
}
}
printf("%d %d\n", tx, ty);
}
return 0;
}
int dist(int a, int b)
{
return(a*a+b*b);
}
}