题解 P3926 【SAC E#1 - 一道不可做题 Jelly】

· · 题解

感觉不爽,发一波题解? 这题无非就分三种情况:

  1. 需要一段时间才能进行解冻
  2. 立即解冻(其实没有必要)
  3. 已经解冻了

每一类中再分几个小类~~~~呵呵

不多说,上代码:

#include <bits/stdc++.h>
using namespace std;
long long a,c,p,q,r,x,jdt,t;
int main()
{
    cin>>a>>c>>p>>q>>r>>x;//输入,不多说
    jdt=p*(c-a);//到开始解冻所需的时间(负的就负的)
    if (jdt>0)//如果还没开始解冻
        if (jdt>=x) t=a+floor((x*1.0)/p);//来不及开始解冻
        else if (jdt+q>=x) t=c;//解冻中
             else t=c+floor(((x-jdt-q)*1.0)/r);//解冻完毕,继续升温
    if (jdt==0)//立即开始解冻(这一类其实可以合并到上一类的)
        if (x<=q) t=c;//解冻中
        else t=c+floor(((x-q)*1.0)/r);//解冻完毕,继续升温
    if (jdt<0)//不需要解冻
        t=a+floor((x*1.0)/r);//直接计算
    cout<<t;//输出
    return 0;//是不是觉得很简单???
}