티스토리 뷰

var n,i,j:int64;d:array[1..2,1..30]of real;x,y,z,a:real;
begin
readln(n);
x:=0;y:=0;
for i:=1 to n do begin
 readln(d[1][i],d[2][i]);
 x+=d[1][i]; y+=d[2][i];
end; writeln(x:0:0,' ',y:0:0);

a:=1e9;
for i:=1 to n do begin
 x:=0;y:=0;
 for j:=1 to n do begin
  if(i<>j) then begin
   x+=d[1][j]; y+=d[2][j];
  end;
 end;
 z:=x*x+y*y;
 z:=sqrt(z);
 if a>z then a:=z;
end;
 
write(a:0:2);
end.

 

풀이 : 브루트 포스

 

0. 선분을 입력받습니다. 그러면서 x, y 값을 더하여, 모든 선분을 거쳤을 때, 어디에 도달하는 지를 알 수 있습니다.

 

1. 브루트 포스 : 모든간선에서 1개만 제외했을 때의 x,y 값을 모든 경우의 수를 해봅니다. 그 중에서 시작점과 도착점이 거리가 가장 작은것을 출력합니다.

 

https://www.acmicpc.net/problem/3097

 

 

 

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함