P14257 嫉妒(jealousy)题解

· · 题解

首先注意到 n\leq10,所以考虑枚举面试的场数。

接下来考虑怎样才会被发现。

可以发现题目已经说明为若存在一个非负整数 j,使得 (i-1)\times s=y+j\times t 或者 i\times s=y+j\times t

显然在小 Y 到达前不可能被发现,否则若 t\mid (i\times s-y)t\mid [(i-1)\times s-y] 则会被发现,其余情况不会被发现。

所以只要每次判断即可。

Code

#include<bits/stdc++.h>

#define int long long

using namespace std;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int n,y,s,t;
    cin>>n>>y>>s>>t;
    for(int i=1;i<=n;i++){
        if(y<=(i-1)*s&&((i-1)*s-y)%t==0) continue;
        if(y<=(i)*s&&((i)*s-y)%t==0) continue;
        cout<<"Yes";
        return 0;
    }
    cout<<"No";
    return 0;
}