PTA乙级题 1072. 开学寄语(20)

【题目链接】


注意第39行,要用%04d,不然有一个测试点过不去。

#include<stdio.h>
int main()
{
    int n,m,i,j,k,a[6],s1=0,s2=0,flag;
    scanf("%d %d",&n,&m);
    int b[n][10],x[n];
    char name[n][5]={0};
    for (i=0;i<m;i++)
    scanf("%d",&a[i]);
    for (i=0;i<n;i++)
    {
        scanf("%s",name[i]);
        scanf("%d",&x[i]);
        for (j=0;j<x[i];j++)
        scanf("%d",&b[i][j]);
    }
    for (i=0;i<n;i++)
    {
        for (j=0;j<x[i];j++)
        {
            flag=0;
            for (k=0;k<m;k++)
            {
                if (b[i][j]==a[k])
                {
                    flag=1;
                    break;
                }
            }
            if (flag==1)
            {
                printf("%s:",name[i]);
                for (j=0;j<x[i];j++)
                {
                    for (k=0;k<m;k++)
                    {
                        if (b[i][j]==a[k])
                        {
                            printf(" %04d",b[i][j]);
                            s2++;
                            break;
                        }
                    }
                }
                printf("\n");
                s1++;
            }
        }
    }
    printf("%d %d",s1,s2);
    return 0;
}