猴子吃香蕉 (二分
添加链接描述
#include
using namespace std;
const int N=200;
typedef long long ll;
#define int long long
ll ans=0;
signed main(){int n,T;cin>>n>>T;for(int i=1;i<=n;i++){ll x,y,z;cin>>x>>y>>z;if(z==0&&y==0)continue;ll l=0,r=T/(x+y+z)+1;while(l<r){ll mid=(l+r+1)>>1;if(((x+y)*mid+mid*(mid-1)/2*z)<=T)l=mid;//一轮的时间小于的等于T 可行 增加midelse r=mid-1;}ans+=(y*l+l*(l-1)/2*z);//ans+=吃的轮数*y 加上额外的吃的时间ll res=(T-(x+y)*l-l*(l-1)/2*z);//如果还有剩余时间 加上这段吃的时间if(res-x>0)ans+=res-x;}cout<<ans<<endl;return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
