和上次的小鱼题差不多,但多了一些条件。
先把游到 $ s - x $ 米是第 $ a_i $ 秒求出来,然后判断之后在第 $ a_{i + 1} $ 秒内游的距离是否 $ geq 2x $ ,大于就说明游出了范围,否则就有危险了。
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i = a; i < b; i++) #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b)) #define index(a) (a - 'A') #define transUpp(a) (a - 32) #define transLow(a) (a + 32) #define ll long long #define PB push_back int gcd(int a, int b){return b == 0 ? a : gcd(a%b, a);} const int N = 20011; int main() { int s, x; double n, m; cin >> s >> x; s -= x; n = log(1 - double(s)/350.)/log(0.98); m = 350*(1 - pow(0.98, n + 1)); if (m >= s + 2*x) cout << 'n' << endl; else cout << 'y' << endl; return 0; }