codefoeces B 397 - On Corruption and Numbers

954 ワード

指定された区間【l,r】の中から幾つかの数(同一の数が使用される回数に限りません)を選択して構成数nを使用することができますか?
考え方:この問題はnが区間を構成できる範囲内にあるかどうかを判断するだけでよい.そのため、使用する最大数のお金と最小数のお金を算出することができます.では、お金を集めることができる区間[mi*l,mi*r]を手に入れます.(注意最小限の金額を再計算する場合、rがnで割り切れる場合はn/r、そうでない場合はn/r+1、例えば7 3 4で最低2個)
#include <iostream>
#include <cstring>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
    long long  n,m,i,j,k,l,r;
    scanf("%lld",&k);
    while(k--)
    {
        scanf("%lld%lld%lld",&n,&l,&r);
        if(n<l)
        {
            printf("No
"); continue; } long long mi; long long ma=n/l; if(n%r==0) mi=n/r; else mi=n/r+1; if(l*mi<=n&&n<=r*ma) { printf("Yes
"); } else printf("No
"); } return 0; }