1802: SC借水
Time Limit: 1 Sec
Memory Limit: 128 MB
Submit: 256
Solved: 42
Submit
Status
Web Board
Description
一天,住在3号楼的SC向住在X号楼的WT借水喝,机智的WT会每隔K秒给SC倒一滴水
现在SC有一个容量为V的大杯子(可以装V滴水)
WT从1时刻开始计时,请问受众多女孩子追捧的SC在[S, E]这个时间段里可以用他的大杯子接到多少滴水?
Input
第一行一个正整数T(T <= 1000),表示有T组数据。
接下来每组数据占一行,每一行有四个整数V,K,S,E。(1 <= S <= E <= 10^9, 1 <= V <= 10^9,1 <= K <= 10^9)
Output
对每组输入,输出用杯子最多接多少滴水,单独占一行。
Sample Input
3
1 1 1 1
10 3 1 9
10 2 5 9
Sample Output
1
3
2
HINT
对于第三组数据,WT会分别在2、4、6、8、10、12……时刻滴一滴水,而SC接水的区间里只有6、8,所以SC可以接到2滴水。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int t,v,k,s,e;
int l,r,sum;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&v,&k,&s,&e);
if(s%k)
l=s/k;
else
l=s/k-1;
r=e/k;
sum=r-l;
if(s==e)
{
if(s%k)
printf("0\n");
else
printf("1\n");
}
else if(sum>v)
printf("%d\n",v);
else
printf("%d\n",sum);
}
return 0;
}