题目链接:Automatic Judge
题目大意:给你t组数据,每组一个n一个m,代表有n道题目,m个操作,每个操作有三个关键字,一个整数代表当前交的题目,一个字符串代表交这道题的时间,一个字符串代表得到的结果,问你总共通过多少题目,总罚时是多少
题目思路:直接模拟就很好,直接判断一下第一个字符是不是A就好了,不用去管那么多状态,然后AC之后就不管了。具体看代码
#include <bits/stdc++.h>
using namespace std;
struct node{
int num;
char time[6];
char sta[5];
int fa;
}p[1020];
int main(){
int t,n,m,nu;
char tim[6],s[5];
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
for(int i = 1001;i <= 1000+n;i++){
p[i].num = i;
p[i].sta[0] = 'W';
p[i].sta[1] = 'A';
p[i].fa = 0;
}
for(int i = 0;i < m;i++){
scanf("%d%s%s",&nu,&tim,&s);
if(p[nu].sta[0] == 'A') continue;
else if(s[0] == 'A'){
p[nu].sta[0] = 'A';
p[nu].fa += (tim[1]-'0')*60+(tim[3]-'0')*10+tim[4]-'0';
}
else p[nu].fa += 20;
}
int sum = 0,cot = 0;
for(int i = 1001;i <= 1000+n;i++){
if(p[i].sta[0] == 'A')
sum += p[i].fa,cot++;
else continue;
}
printf("%d %d\n",cot,sum);
}
return 0;
}