代码注释应该很清晰
先存下违禁品,放到数组中,未使用map
#include<cstdio>
#include<string.h>
int wupin[10],N,M;
bool isin(int A){ //判断是否为违禁品
for(int i=0;i<M;i++){
if(wupin[i]==A)return true;
}
return false;
}
int main(){
//学生人数和需要被查缴的物品种类数
int stu=0,get=0;
scanf("%d %d",&N,&M);
for(int i=0;i<M;i++) //input need 没收的作品
scanf("%d",&wupin[i]);
for(int i=0;i<N;i++){
char name[5];int K,flag=0;
scanf("%s %d",name,&K); //输入姓名,物品件数
for(int j=0;j<K;j++){
int temp;scanf("%d",&temp); //input一件物品
if(isin(temp)){ //judge是否是违禁品
if(flag==0){ //if是第一个,第一个要输出名字冒号
if(stu!=0)printf("\n");
printf("%s:",name);flag=1;stu++;
}
printf(" %04d",temp);get++;
}
}
getchar();
}
if(stu!=0) printf("\n");
printf("%d %d",stu,get);
return 0;
}