1072 开学寄语

hash题。

解题方法:一边输入数据,一边进行判断和输出。

#include<iostream>
using namespace std;

bool hashtable[10000] = {false};
int main() {
    int n,m,temp,cnt1 = 0,cnt2 = 0;
    cin>>n>>m;
    while(m--) { //m个违规物品 
        cin>>temp;
        hashtable[temp] = true;
    }
    while(n--) {//n个学生 
        string name;
        int k,flag = 0;
        cin>>name>>k;
        while(k--) {//当前学生携带 k 个物品 
            scanf("%d",&temp);
            if(hashtable[temp] == true) { //携带了 违规物品 
                if(flag == 0) {
                    flag = 1;
                    printf("%s:",name.c_str());
                    cnt1++;// 存在问题的学生的总人数加一 
                }
                printf(" %04d",temp);
                cnt2++;//被查缴物品的总数 加一 
            }
        }
        if(flag == 1)
            printf("\n");
    }
    printf("%d %d",cnt1,cnt2);
    return 0;
}

 

posted @ 2020-02-24 18:12  tangq123  阅读(134)  评论(0编辑  收藏  举报