Codeforces Round #281 (Div. 2) A. Vasya and Football(模拟)

时间:2020-12-21 20:26:07

简单题,却犯了两个错误导致WA了多次。

第一是程序容错性不好,没有考虑到输入数据中可能给实际已经罚下场的人再来牌,这种情况在system测试数据里是有的。。。

二是chronologically这个词没注意,其实如果输入是按时间顺序的,就直接在线处理就行了,用不着int team1[110][110],team2[110][110]两个数组。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
#include<cctype>
#include<sstream>
using namespace std;
#define pii pair<int,int>
#define LL long long int
const int eps=1e-;
const int INF=;
const int maxn=+;
char t1[],t2[];
int n,t,m;
int team1[][],team2[][];
int r1[],r2[];
char team,card;
int main()
{
//freopen("in2.txt","r",stdin);
//freopen("out.txt","w",stdout);
scanf("%s%s",t1,t2);
scanf("%d",&n);
for(int i=; i<n; i++)
{
scanf("%d",&t);
getchar();
scanf("%c",&team);
getchar();
scanf("%d",&m);
getchar();
scanf("%c",&card);
getchar();
if(team=='a')
{
if(card=='y')
{
r2[m]++;
if(r2[m]==)
team2[t][m]=;
}
else
{
if(r2[m]<)
{
r2[m]=;
team2[t][m]=;
}
}
}
else
{
if(card=='y')
{
r1[m]++;
if(r1[m]==)
team1[t][m]=;
}
else
{
if(r1[m]<)
{
r1[m]=;
team1[t][m]=;
}
}
}
}
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
if(team1[i][j]==)
{
printf("%s %d %d\n",t1,j,i);
break;
}
else if(team2[i][j]==)
{
printf("%s %d %d\n",t2,j,i);
break;
}
}
}
//fclose(stdin);
//fclose(stdout);
return ;
}

我的渣代码

#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm> using namespace std; const int max_n = , inf = ; int n, f[][max_n];
string a[]; int main() {
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
cin >> a[] >> a[] >> n;
while (n--) {
int t, num, q, c;
char c1, c2;
cin >> t >> c1 >> num >> c2;
if (c1 == 'h') {
q = ;
} else {
q = ;
}
if (c2 == 'y') {
c = ;
} else {
c = ;
}
if (f[q][num] < ) {
f[q][num] += c;
if (f[q][num] >= ) {
cout << a[q] << " " << num << " " << t << endl;
}
}
}
return ;
}

BigBag大神的优美代码