4、独居(d.cpp)
【题目】
一只奶牛自己独居,它每天需要吃1个水果和花费X元交暖气费。现在奶牛家里有F个水果和D元。奶牛最多能独居多少天?奶牛可以去超市买水果,超市每个水果P元。
【输入格式】
多组测试数据。
第一行,一个整数G,表示有G组测试数据。1 <= G <= 10。
每组测试数据格式:
一行,4个整数X,F,D,P。 1<=X,F,D,P<=2000000000。
【输出格式】
共G行,每行一个整数。
输入样例 | 输出样例 |
10 3 5 100 10 2 17 20 1 1 97 98 1 16 4 8 2 17 1 2000000000 4 1 1996245611 1999990159 123 15000000 100 2000000000 1 1 1000000000 2000000000 1000000000 1 1 1 1 1 1 1 2000000000 | 11 10 97 0 95238095 1996275808 133 1000000000 1 1 |
代码
#include<bits/stdc++.h>
using namespace std;
long long g,x,f,d,p,ans,l,r,mid,sum;
int main(){
cin>>g;
for(int i=1;i<=g;i++)
{
cin>>x>>f>>d>>p;
l=0;
r=d+1;
for(;;)
{
mid=(l+r)/2;
if(mid<=f)sum=mid*x;
else sum=x*f+(mid-f)*(x+p);
if(sum>d)r=mid;
else if(sum<=d)l=mid;
if(l+1>=r)break;
}
cout<<l<<endl;
}
return 0;
}
到这里就有一点难度了