POJ 1299 - Polar Explorer

http://poj.org/problem?id=1299

概要

半径 X の完全な球面上にいる. 今いる場所と墜落した場所の角度 Z が与えられるので,今ある燃料 Y でその場所まで往復できるかどうか答える.

燃料は1マイルあたり5消費する.

往復できるときは往復した後の燃料の残量も出力し,できないときは何マイルだったら往復できるかも出力する.

制約

解法

やるだけ.

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6   static const double PI = 3.14159;
 7   string s;
 8   while (cin >> s && s != "ENDOFINPUT") {
 9     double r, g, t;
10     cin >> r >> g >> t >> s;
11     t = min(t, 360-t);
12     const double need = PI*r*t/450;
13     if (need < g + 1e-10) {
14       cout << "YES " << int(g - need) << endl;
15     } else {
16       cout << "NO " << int(5*g) << endl;
17     }
18   }
19   return 0;
20 }
poj/1299.cc