0
点赞
收藏
分享

微信扫一扫

PAT (Basic Level) Practice (中文)- 1065 单身狗(25 分)


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:注意:编号为 0 的情况。

AC 代码

#include<bits/stdc++.h>
#include<cmath>

#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

unordered_map<int,int> ump;
set<int> st;
vector<int> vec;

int main()
{
int n,u,v;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&u,&v);
ump[u==0?-1:u]=v==0?-1:v, ump[v==0?-1:v]=u==0?-1:u;
}

scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&u);
st.insert(u==0?-1:u);
}

for(set<int>::reverse_iterator it=st.rbegin(); it!=st.rend(); it++)
{
v=ump[*it];
if(st.count(v)!=1)
vec.push_back(*it);
}

printf("%d\n",vec.size());
for(int i=vec.size()-1;i>=0;i--)
{
printf("%05d%c",vec[i]==-1?0:vec[i],i==0?'\n':' ');
}


return 0;
}

/* 特殊数据
3
00000 11111
33333 44444
55555 66666
2
00000 12345
*/


举报

相关推荐

0 条评论