PAT 1121 Damn Single

原文鏈接:我的個人博客

原題鏈接

1121 Damn Single
與之相似的題目有1149 Dangerous Goods Packaging (25分)

思路

  用map<string,string>記錄每個人的伴侶。用has<string,int>記錄在場的人的,在場則記爲1,不在場默認爲0。之後遍歷,判斷該人的伴侶是否在場,如果不在場則將他歸爲damn single,即push_back進相應的數組中。

代碼

#include <bits/stdc++.h>
using namespace std;
map<string,string> m;
map<string,int> has;
 
int main(){
    int n,k;
    string a,b;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a>>b;
        m[a] = b;//a的同伴是b 
        m[b] = a;
    }
    cin>>k;
    vector<string>v,ans;
    v.resize(k);
    for(int i=0;i<k;i++){
        cin>>v[i];
        has[v[i]] = 1;
    }
    for(int i=0;i<v.size();i++){
        if(has[m[v[i]]]==0){//同伴不在 
            ans.push_back(v[i]); 
        }
    }
    sort(ans.begin(),ans.end());
    cout<<ans.size()<<endl;
    for(int i=0;i<ans.size();i++){
        cout<<ans[i];
        if(i!=ans.size()-1) cout<<" ";
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章