牛客 2022年浙大城市学院新生程序设计竞赛

心之钢

错误原因 每一次技能使用 都应该及时类型转换 不能全部相加再转 不然可能小数部分会进位到整数
#include<bits/stdc++.h>
using namespace std;
queue<int> t[6];
int main()
{
    double H1,H2;
    bool buy=0;
    int op,min,s,mis,idx;
    scanf("%lf%lf%d",&H1,&H2,&op);
	float blood=H1;
    while(op--)
    {
        scanf("%d:%d %d",&min,&s,&mis);
        if(mis==1) 
			buy=1,blood+=800;
        if(mis==2)
			blood+=H2;
        if(mis==3)
        {
        	scanf("%d",&idx);
            if(buy)
            {
                t[idx].push(min*60+s);
                if(t[idx].size()>1&&(t[idx].back()-t[idx].front())>=30||t[idx].size()==1)
                {
				    blood+=(int)((125.0+blood*0.06)*0.1);
               		while(t[idx].size()!=1) t[idx].pop();
				}
            }
        }
    }
     
    printf("%d",(int)blood);
    return 0;
}
posted @ 2022-12-11 12:22  Szang  阅读(46)  评论(0编辑  收藏  举报