[洛谷]P3926 SAC E#1 - 一道不可做题 Jelly (#模拟)

题目背景

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。

输出格式:

输出仅包含一个整数:即为所求温度。

输入输出样例

输入样例#1

-10 0 2 1 3 26

输出样例#1

1

输入样例#2

-10 0 2 1 3 27

输出样例#2

2

思路

模拟难度比较简单,就是一些细节需要注意。

#include <stdio.h>
#include <iostream>
using namespace std;
long long int a,c,p,q,r,x,melt;
//依题意,a是蒟蒻果冻的原始温度,c是熔点,p是解冻前加热的时间刻,q是解冻时间刻,r是解冻后时间刻,x是加热的时间刻。
//melt存果冻是否解冻,不然我这个会死循环。 
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	register long long int i,j;
	cin>>a>>c>>p>>q>>r>>x;
	while(x>0)
	{
		if(a<c)//如果未解冻 
		{
			x-=p;//时间-p 
			a++;//温度+1 
			melt=0;//我们认为可以解冻状态 
		}
		if(a==c&&melt==0)//如果到达熔点且可以解冻 
		{
			x-=q;//减去解冻时间 
			melt=1;//之后不能解冻了 
		}
		if(a>c) 
		{
			melt=1;
		}
		if(a>=c&&melt==1) 
		{
			x-=r;
			a++;
			melt=1;
		}
	}
	if(x<0)//如果时间小于0就意味着最后一次加热不可取 
	{
		a--;
	}
	cout<<a<<endl;
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值