题目描述: http://cs.scu.edu.cn/soj/problem.action?id=3609
解答过程:
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
struct node
{
int actime;
int wacnt;
bool ok;
}que[20];
int main()
{
int t;
scanf("%d",&t);
int n,m,i,sum,cnt;
char str[100];
while(t--)
{
sum = 0;
cnt = 0;
scanf("%d%d",&n,&m);
int hour,min;
char index, ac[5];
for(i = 0; i < n; ++i)
que[i].ok = que[i].wacnt = 0;
for(i = 0; i < m; ++i)
{
scanf("%d:%d %c %s",&hour,&min,&index,ac);
if(que[(index-'A')].ok)
continue;
if(strcmp(ac,"Yes")==0)
{
que[(index-'A')].actime = hour * 60 + min;
sum += que[(index-'A')].actime + que[(index-'A')].wacnt * 20;
cnt ++;
que[(index-'A')].ok = true;
}
else
++que[(index-'A')].wacnt ;
}
printf("%d %d\n",cnt,sum);
}
// system("pause");
return 0;
}
这道题最初写错的原因是:每道题 所花费的时间是第一次提交成功花费的时间。所以要用一个变量来标记是否是第一次提交通过。。