题目描述:
输入描述:
输出描述:
样例1:
500 10 3
11:45 2
14:19 2
19:18 3 1
输出:
520
样例2:
1000 100 7
00:00 2
00:30 3 1
01:00 1
01:30 2
01:40 3 1
01:45 3 2
01:50 3 1
输出:
2048
题意:
对于事件 1,直接获得 800 生命值,并将 5 个敌方英雄的冷却时 间初始化为冷却完毕的状态。 对于事件 2,直接获得 H2 生命值。 对于事件 3,判断一下受到攻击的英雄是否处于冷却完毕的状态, 若冷却完毕则将当前生命值代入公式计算出获得的生命值,并修 改其冷却状态。
思路:
直接模拟就行(注意向下取整)。
代码:
#include<iostream>
#define ll long long
using namespace std;
ll r[6];
ll l[6];
int main()
{
int a,b,c;
cin>>a>>b>>c;
int fl=0;
while(c--)
{
int m,n;
scanf("%d:%d",&m,&n);
int o;
cin>>o;
if(o==1)
{
a+=800;
fl=1;
}
else if(o==2)
{
a+=b;
}
else if(o==3)
{
int h;
cin>>h;
if(fl==1)
{
if((m-r[h])*60+(n-l[h])>=0)
{
r[h]=m;
l[h]=n+30;
a+=(125+0.06*a)*0.1;
}
}
}
}
cout<<a;
return 0;
}