http://acm.hdu.edu.cn/showproblem.php?pid=6023
这道题唯一的坑点在于,罚时是在过了题后才加上去的,我就说这还能怎么做。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T, n, m;
bool pro[1020];
int cnt[1020];
char str[10];
int tmp, a, b;
cin >> T;
while(T--)
{
int key = 0;
int ans = 0;
memset(pro, 0, sizeof(pro));
memset(cnt, 0, sizeof(cnt));
scanf("%d%d", &n, &m);
while(m--)
{
scanf("%d %d:%d %s", &tmp, &a, &b, &str);
if(pro[tmp])
continue;
if(!strcmp(str, "AC"))
{
key++;
ans += (a * 60 + b) + cnt[tmp];
pro[tmp] = 1;
}
else
cnt[tmp] += 20;
}
cout << key << " " << ans << endl;
}
return 0;
}

本文提供了一道来自HDU在线评测系统的题目解析及代码实现,主要解决罚时计算的问题,特别是在通过题目后才计算罚时的情况。代码采用C++编写,详细展示了如何记录每个题目是否被正确解答以及累计罚时。

被折叠的 条评论
为什么被折叠?



