水題,可是經過這一題須要改進一點;ios
對於hash賦初值的時候必定要謹慎一點,不要隨便賦值0,視輸入的數據而定;spa
#include<iostream> #include<stdlib.h> #include<stdio.h> #include<vector> #include<set> using namespace std; using std::vector; using std::set; const int maxn=100100; int mem[maxn]={-1}; bool vis[maxn]={false}; vector<int>output; set<int>out; int main(){ int n; int a,b; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d",&a,&b); mem[a]=b; mem[b]=a; } scanf("%d",&n); bool flag=true; for(int i=0;i<n;i++){ scanf("%d",&a); vis[a]=true; } for(int i=0;i<maxn;i++){ if(vis[i]){ if(mem[i]==-1){ //若是是沒結婚 out.insert(i); }else{ //看看另外一個成員來沒來 if(!vis[mem[i]]) out.insert(i); } } } printf("%d\n",out.size()); bool f=true; for(set<int>::iterator it=out.begin();it!=out.end();it++){ if(f){ printf("%05d",*it); f=false; } else printf(" %05d",*it); } system("pause"); return 0; }