@@ -4,30 +4,32 @@ using namespace std;
4
4
using ll = long long ;
5
5
6
6
int power (int dis) {
7
- double v = round ( double (dis * 10 ) / 60 ) ;
8
- vector< int > ps = { 2 , 15 , 33 , 54 , 79 , 107 , 138 , 171 , 207 , 244 , 284 , 326 } ;
7
+ vector< int > ps = { 24 , 154 , 334 , 544 , 794 , 1074 , 1384 , 1714 , 2074 , 2444 , 2844 , 3264 } ;
8
+ assert (ps. size () == 12 ) ;
9
9
for (int i = 0 ; i < 12 ; ++i) {
10
- if (v <= ps[i]) return i;
10
+ if (dis * 100 <= ps[i] * 60 ) return i;
11
11
}
12
12
return 12 ;
13
13
}
14
14
15
- string direction (int deg, int wp) {
16
- if (wp == 0 ) return " C" ;
17
- if (deg <= 112 || deg >= 3488 ) return " N" ;
18
- vector<int > ds = { 337 , 562 , 787 , 1012 , 1237 , 1462 , 1687 , 1912 , 2137 , 2362 , 2587 , 2812 , 3037 , 3262 , 3487 };
19
- vector<string> ss = { " NNE" , " NE" , " ENE" , " E" , " ESE" , " SE" , " SSE" , " S" , " SSW" , " SW" , " WSW" , " W" , " WNW" , " NW" , " NNW" };
15
+ string direction (int deg) {
16
+ vector<int > ds = {
17
+ 112 , 337 , 562 , 787 , 1012 , 1237 , 1462 , 1687 , 1912 , 2137 , 2362 , 2587 , 2812 , 3037 , 3262 , 3487
18
+ };
19
+ vector<string> ss = {
20
+ " N" , " NNE" , " NE" , " ENE" , " E" , " ESE" , " SE" , " SSE" , " S" , " SSW" , " SW" , " WSW" , " W" , " WNW" , " NW" , " NNW"
21
+ };
20
22
assert (ds.size () == ss.size ());
21
23
for (int i = 0 ; i < ds.size (); ++i) {
22
24
if (deg <= ds[i]) return ss[i];
23
25
}
24
- throw ;
26
+ return " N " ;
25
27
}
26
28
27
29
vector<string> solve (int deg, int dis) {
28
30
string ans;
29
31
int wp = power (dis);
30
- string dir = direction (deg, wp) ;
32
+ string dir = wp > 0 ? direction (deg) : " C " ;
31
33
return { dir, to_string (wp) };
32
34
}
33
35
0 commit comments