题目背景
SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友。
题目描述
SOL君很喜欢吃蒟蒻果冻。而SOL菌也很喜欢蒟蒻果冻。
有一天,他们在一起搓炉石,而SOL菌则要拿出蒟蒻果冻招待他的客人。
蒟蒻果冻一般在a度下保存在冰箱里。但是刚拿出来的时候太冰了,需要加热。SOL菌打算用一种神奇的电炉加热蒟蒻果冻。根据观察,它有一个特点:
1、蒟蒻果冻小于c度的时候,每p单位时间加热1单位温度;
2、当蒟蒻果冻等于c度的时候,需要q单位时间解冻(大家都知道,晶体物态变化温度不变……SOL君认为果冻属于晶体);
3、当蒟蒻果冻解冻完成之后,每r单位时间加热1单位温度。
SOL想知道,将果冻加热x单位时间的时候果冻的温度。
温度向下取整,也就是说,如果加热结束时不足p(或q)单位时间,则认为在这最后一小段时间内果冻温度没有任何变化。
输入输出格式
输入格式:
输入仅包含一行,6个整数,依次为a,c,p,q,r,x。
输出格式:
输出仅包含一个整数:即为所求温度。
输入输出样例
说明
对于 30\%30% 的数据,|a|, |c| \leq 200, x \leq 100∣a∣,∣c∣≤200,x≤100。
对于 60\%60% 的数据,|a|, |c| \leq 2 \times 10^9, x \leq 100∣a∣,∣c∣≤2×109,x≤100。
对于 100\%100% 的数据,|a|, |c| \leq 2 \times 10^9, 1 \leq x, p, q, r \leq 10^9∣a∣,∣c∣≤2×109,1≤x,p,q,r≤109。
数据中可能有 a = ca=c,此时算还未解冻的状态。
提示:请使用long long数据类型。
标程
思路:模拟即可
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; long long a,c,p,q,r,x; int main(){ scanf("%lld%lld%lld%lld%lld%lld",&a,&c,&p,&q,&r,&x); if(a>c) cout<<a+x/r; else if(a==c){ if(x<q){ cout<<c; return 0; } else{ x-=q; cout<<x/r+c; return 0; } } else if(a<c) if((c-a)*p>=x){ cout<<a+x/p; return 0; } else{ x-=(c-a)*p; if(x<q){ cout<<c; return 0; } else{ x-=q; cout<<x/r+c; return 0; } } }