티스토리 뷰

var n,i:int64;v0,th,x1,h1,h2,t,c,s,y:real;
begin
readln(n);
for i:=1 to n do begin
 readln(v0,th,x1,h1,h2);
 th:=(th*PI)/180;
 s:=sin(th);
 c:=cos(th);
 t:=(x1/(v0*c));
 y:=v0*t*s-(9.81*t*t)/2;
 if (h1+1>y) or (h2-1<y) then write('Not ');
 writeln('Safe');
end;
end.

 

풀이 : 주어진 공식에 맞춰 변수를 끼어 넣어서 x1 일 때의 y값 구하기

 

0. 위의 식에서 먼저 첫번째 식을 이용하여 x1 일 때의 t (시간) 을 구해야 합니다

1. 두번째 식에 위에서 구했던 t값을 넣어서 y값을 구합니다.

2. y값이 [h1+1, h2-1]   (닫힌구간 : h1+1 <= y <= h2-1) 이라면 Safe을 그렇지 않으면 Not Safe 을 출력합니다.

 

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

 

 

주의!!!!

pascal 에서 제공하는 sin, cos 함수들은

ex) 45 도 일 때의 sin, cos 값을 알고 싶다면 45 degree 로 넣는 것이 아니라  sin(45), cos(45)...

45도를 radical (PI / 180 으로 degree 에서 radical 로 바꿀수 있습니다) 로 바꾼 다음 집어 넣어야 합니다.

최근에 올라온 글
최근에 달린 댓글
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
글 보관함