Alexey, a merry Berland entrant, got sick of the gray reality and he zealously wants to go to university. There are a lot of universities nowadays, so Alexey is getting lost in the diversity — he has not yet decided what profession he wants to get. At school, he had bad grades in all subjects, and it's only thanks to wealthy parents that he was able to obtain the graduation certificate.
The situation is complicated by the fact that each high education institution has the determined amount of voluntary donations, paid by the new students for admission — ni berubleys. He cannot pay more than ni, because then the difference between the paid amount andni can be regarded as a bribe!
Each rector is wearing the distinctive uniform of his university. Therefore, the uniform's pockets cannot contain coins of denomination more than ri. The rector also does not carry coins of denomination less than li in his pocket — because if everyone pays him with so small coins, they gather a lot of weight and the pocket tears. Therefore, a donation can be paid only by coins of denomination xberubleys, where li ≤ x ≤ ri (Berland uses coins of any positive integer denomination). Alexey can use the coins of different denominations and he can use the coins of the same denomination any number of times. When Alexey was first confronted with such orders, he was puzzled because it turned out that not all universities can accept him! Alexey is very afraid of going into the army (even though he had long wanted to get the green uniform, but his dad says that the army bullies will beat his son and he cannot pay to ensure the boy's safety). So, Alexey wants to know for sure which universities he can enter so that he could quickly choose his alma mater.
Thanks to the parents, Alexey is not limited in money and we can assume that he has an unlimited number of coins of each type.
In other words, you are given t requests, each of them contains numbers ni, li, ri. For each query you need to answer, whether it is possible to gather the sum of exactly ni berubleys using only coins with an integer denomination from li to ri berubleys. You can use coins of different denominations. Coins of each denomination can be used any number of times.
The first line contains the number of universities t, (1 ≤ t ≤ 1000) Each of the next t lines contain three space-separated integers:ni, li, ri (1 ≤ ni, li, ri ≤ 109; li ≤ ri).
For each query print on a single line: either "Yes", if Alexey can enter the university, or "No" otherwise.
2 5 2 3 6 4 5
Yes No
You can pay the donation to the first university with two coins: one of denomination 2 and one of denomination 3 berubleys. The donation to the second university cannot be paid.
这道题是一个确定取值范围的题,大概意思是对于3个正整数n,l,r,判断n是否可以由l至r之间的整数相加组成(一个数可以用多次),如果可以的话打印yes,否则的话打印no。
开始的时候想的是使用求余的方法,就是若n%(r~l之间的数),看余数加上l是否在l,r之间,但这样的话需要判断很多次,在样例范围比较大的时候很容易导致超时
之后听取小伙伴的意见之后就换了一种思路:假设n可以由l~r之间的两个整数相加而成,那么n的取值应该在2*l到2*r之间,同理,如果是由之间的三个数相加组成,那么n的取值应该在3*l~3*r之间,以此类推,问题得解。
以下是AC代码:
#include<stdio.h>
typedef long long ll;
int main()
{
ll n, r, l, x;
int total, flag = 0;
scanf("%d", &total);
while(total--)
{
scanf("%lld %lld %lld", &n, &l, &r);
x = n / l;
if(n >= x*l && n <= x*r)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
return 0;
}