AtCoder Beginner Contest 173 B - Judge Status Summary
Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 200200 points
Problem Statement
Takahashi is participating in a programming contest called AXC002, and he has just submitted his code to Problem A.
The problem has NN test cases.
For each test case ii (1≤i≤N1≤i≤N), you are given a string SiSi representing the verdict for that test case. Find the numbers of test cases for which the verdict is AC, WA, TLE, and RE, respectively.
See the Output section for the output format.
Constraints
- 1≤N≤1051≤N≤105
- SiSi is
AC,WA,TLE, orRE.
Input
Input is given from Standard Input in the following format:
NN S1S1 ⋮⋮ SNSN
Output
Let C0, C1, C2C2, and C3 be the numbers of test cases for which the verdict is AC, WA, TLE, and RE, respectively. Print the following:
AC x C0 WA x C1 TLE x C2 RE x C3
Sample Input 1 Copy
6 AC TLE AC AC WA TLE
Sample Output 1 Copy
AC x 3 WA x 1 TLE x 2 RE x 0
We have 33, 11, 22, and 00 test case(s) for which the verdict is AC, WA, TLE, and RE, respectively.
解题思路:小学计数问题,不过多解释,看题目就能懂
解法1,利用字符串模拟:
#include<cstdio> #include<cstring> using namespace std; int main(void) { int n; int a[4]; char ch[10]; char str[4][10]={{"AC"},{"WA"},{"TLE"},{"RE"}}; while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); getchar(); for(int i=0;i<n;++i) { scanf("%s",ch); for(int j=0;j<4;++j) { if(strcmp(ch,str[j])==0) a[j]++; } } for(int i=0;i<4;++i) printf("%s x %d\n",str[i],a[i]); } return 0; }
解法2,利用STL的map:
#include<iostream> #include<cstdio> #include<map> using namespace std; int main(void) { ios::sync_with_stdio(false); map<string,int> mp; int n; char ch[10]; while(cin>>n) { for(int i=0;i<n;++i) cin>>ch,mp[ch]++; printf("AC x %d\n",mp["AC"]); printf("WA x %d\n",mp["WA"]); printf("TLE x %d\n",mp["TLE"]); printf("RE x %d\n",mp["RE"]); } return 0; }

浙公网安备 33010602011771号