暂存
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
#include<iostream>
using namespace std;
struct node{
int score;
string cook;
};
int main()
{
int n,m,score,x,y;
char c;string cook;
map<int,node> M;
freopen("1058.txt","r",stdin);
scanf("%d %d",&n,&m);
node s;
for(int i=0;i<m;i++)
{
scanf("%d %d %d",&score,&x,&y);
for(int j=0;j<y;j++)
{
cin>>c;cook+=c;
}
s.score=score;s.cook=cook;
M[i]=s;
}
int sum[n],cnt[m];
memset(sum,0,sizeof(sum));
memset(cnt,0,sizeof(cnt));
for(int i=0;i<n;i++)
{
for(int k=0;k<m;k++)
{
scanf("(%d",&x);
for(int j=0;j<x;j++)
{
cin>>c;cook+=c;
}
cin>>c;
if(M[k].cook==cook)
{
sum[i]+=M[k].score;
}
else
cnt[k]++;
}
}
for(int i=0;i<n;i++)
{
printf("%d\n",sum[i]);
}
int maxn=-1;
for(int i=0;i<m;i++)
{
if(cnt[i]>maxn) maxn=cnt[i];
}
printf("%d",maxn);
for(int i=0;i<m;i++)
{
if(cnt[i]==maxn)
{
printf(" %d",i);
}
}
return 0;
}