トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

2002da1.c

// 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);
}