题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805270356541440
分析:题目的输入用结构体更清晰,这里我用二维的字符数组是故意使用的;主要是在提交代码时,如果把 int time[105],定义在函数外面,会提示edeclared as different kind of symbol,网上搜了一下错误原因是 变量定义错误——库函数中已有对应变量名;还有一个就是,time定义在主函数记得初始化,默认并不是0,这里要养成习惯
代码:
#include<iostream>
using namespace std;
#include<vector>
#include<string>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<cstdlib>
#include<map>
char timu[1005][10];
int main()
{
int time[105]={0,};
int n,m;
cin>>n>>m;
for(int i=1;i<=m;++i)
{
cin>>timu[i][0]>>timu[i][1]>>timu[i][2];
for(int j=0;j<timu[i][2]-'0';++j)
{
cin>>timu[i][j+3];
}
}
char c1,c2;
int sum;
for(int i=0;i<n;++i)
{
sum=0;
for(int j=1;j<=m;++j)
{
int a;
char b[6];
cin>>c1;
cin>>a;
for(int k=0;k<a;++k)
cin>>b[k];
cin>>c2;
if(a==timu[j][2]-'0')
{
int l;
for(l=0;l<a;)
{
if(b[l]!=timu[j][3+l]) break;
l++;
}
if(l==a) sum=sum+timu[j][0]-'0';
else time[j]++;
}else
time[j]++;
}
cout<<sum<<endl;
}
int maxx=-1;
for(int i=1;i<=m;++i)
if(maxx<=time[i]) maxx=time[i];
if(maxx==0) cout << "Too simple";
else
{
cout<<maxx;
for(int i=1;i<=m;++i)
if(maxx==time[i]) cout<<" "<<i;
}
return 0;
}