小白成长记之PTA乙级题 1058
PTA乙级题 1058. 选择题(20)
比较繁琐。
#include<stdio.h>
int main()
{
int i,j,k,n,m,x,flag,max;
scanf("%d %d",&n,&m);
int score[m],b[m],c[m],sum[n]={0},right[m]={0},fault[m]={0};
int answer[100][100];
char ch;
for (i=0;i<m;i++)
{
scanf("%d %d %d ",&score[i],&b[i],&c[i]);
for (j=0;(ch=getchar())!='\n';j++)
{
if (ch==' ')
{
j--;
continue;
}
else
answer[i][j]=ch;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<m;)
{
ch=getchar();
if (ch=='(')
{
scanf("%d",&x);
if (x==c[j])
{
for (k=0;k<x;k++)
{
flag=1;
ch=getchar();
if (ch==' ')
{
k--;
continue;
}
else if (ch!=')')
{
if (ch!=answer[j][k])
{
flag=0;
break;
}
}
}
if (flag==1)
{
sum[i]+=score[j];
fault[j]--;
}
}
j++;
}
}
}
for (i=0;i<n;i++)
printf("%d\n",sum[i]);
//次数 编号
for (i=0;i<m;i++)
fault[i]+=n;
max=fault[0];
for (i=1;i<m;i++)
max=(max>fault[i]?max:fault[i]);
if (max!=0)
{
printf("%d",max);
for (i=0;i<m;i++)
{
if (max==fault[i])
printf(" %d",i+1);
}
}
else
printf("Too simple");
return 0;
}