PAT 1121

来源:互联网 发布:淘宝装修的图片尺寸 编辑:程序博客网 时间:2024/05/21 06:55

其实我也不知道我写的啥......

数组开的有点多,先开了mp数组存夫妻,然后开了一个数组存参加party的人(将其编号标记),再开了一个数组按顺序存参加party的人,然后判断,如果是单身狗的话则存入最终数组...实在是复杂  下面贴了一个大佬的比较短的.

#include<stdio.h>#include<iostream>#include<string>#include<vector>#include<string.h>#include<set>#include<map>#include<algorithm>#include<queue>using namespace std;#define N 100005int mp[N];int ans[N], cnt[N], an[N];int main(){int a, b;int n, m, i,p;memset(ans, -1, sizeof(ans));memset(mp, -1, sizeof(mp));scanf("%d", &n);for (i = 0; i < n; i++) {cin >> a >> b;mp[a] = b;mp[b] = a;}scanf("%d", &m);for (i = 0; i < m; i++) {scanf("%d", &p);ans[p] = 0;cnt[i] = p;}int k = 0;for(i=0;i<m;i++){if (mp[cnt[i]]>=0&&ans[mp[cnt[i]]] == 0) {continue;}else {an[k++] = cnt[i];}}sort(an, an + k);printf("%d\n", k);if(k>0)printf("%05d", an[0]);for (i = 1; i < k; i++) {printf(" %05d", an[i]);}if (k>0)printf("\n");return 0;}/**/

#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <queue>#include <map>#include <string>#include <set>using namespace std;const int maxn = 100000 + 10;int n, m;int couple[maxn];bool vis[maxn];int main(){#ifndef ONLINE_JUDGEfreopen("data.in", "r", stdin);#endif    cin >> n;    for(int i = 0; i < n; ++i){        int id1, id2;        cin >> id1 >> id2;        couple[id1] = id2;        couple[id2] = id1;    }    cin >> m;    for(int i = 0; i < m; ++i){        int id; cin >> id;        vis[id] = 1;    }    vector<int> ans;    for(int i = 0; i < maxn; ++i){        if(vis[i] && !vis[couple[i]]) ans.push_back(i);    }    cout << ans.size() << endl;    for(int i = 0; i < ans.size(); ++i){        if(i) cout << " ";        printf("%05d", ans[i]);    }    return 0;}


0 0
原创粉丝点击