这题写的很困难
#include <bits/stdc++.h>
using namespace std;
struct node{
int f, z;
char ans[10];
};
int main(){
int n, m, temp;
char c;
cin >> n >> m;
int score[1001] = {0};
int wrong[1001] = {0};
int z[1001] = {0};
node t[1001];
for(int i = 0; i < m; i++) {
cin >> t[i].f >> t[i].z >> temp;
for(int j = 0; j < temp; j++) {
scanf(" %c",&c);
t[i].ans[j] = c;
}
t[i].ans[temp] = '\0';
}
getchar();
int z1;
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
getchar();
cin >> z1;
char ans1[101];
for(int k = 0; k < z1; k++) {
scanf(" %c", &ans1[k]);
}
ans1[z1]='\0';
getchar();
getchar();
if(!strcmp(ans1, t[j].ans)) {
score[i] += t[j].f;
} else {
wrong[j]++;
z[j]++;
}
}
}
sort(wrong, wrong+m);
int max = wrong[m - 1];
for(int i = 0; i < n; i++) {
printf("%d\n", score[i]);
}
if(max == 0) {
cout << "Too simple" << endl;
} else {
cout << max;
for(int i = 0; i < m; i++) {
if(z[i] == max) {
printf(" %d", i + 1);
}
}
}
return 0;
}