一、题目概述
升序输出无配偶或配偶未出席的客人ID。
二、思路
略;
三、代码
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N, M;
vector<int> spouse(100000, -1), prst(100000, 0), guest, ans;
scanf("%d", &N);
for( int i = 0, id1, id2; i < N; ++i )
{
scanf("%d %d", &id1, &id2);
spouse[id1] = id2;
spouse[id2] = id1;
}
scanf("%d", &M);
for( int i = 0, id; i < M; ++i )
{
scanf("%d", &id);
guest.push_back(id);
prst[id] = 1;
}
for( int i = 0; i < M; ++i )
if( spouse[ guest[i] ] == -1 || !prst[ spouse[ guest[i] ] ] )
ans.push_back( guest[i] );
sort( ans.begin(), ans.end() );
printf("%d\n", ans.size());
for( int i = 0; i < ans.size(); ++i )
printf("%s%05d", i ? " ":"", ans[i]);
}