1065 单身狗(JAVA)

简介: “单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。

 

“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。

输入格式:

输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(≤ 10 000),为参加派对的总人数;随后一行给出这 M 位客人的 ID,以空格分隔。题目保证无人重婚或脚踩两条船。

输出格式:

首先第一行输出落单客人的总人数;随后第二行按 ID 递增顺序列出落单的客人。ID 间用 1 个空格分隔,行的首尾不得有多余空格。

输入样例:

3
11111 22222
33333 44444
55555 66666
7
55555 44444 10000 88888 22222 11111 23333

image.gif

输出样例:

5
10000 23333 44444 55555 88888

image.gif

代码实现:

import java.io.*;
import java.util.*;
/**
 * @author yx
 * @date 2022-07-24 0:17
 */
public class Main {
    static PrintWriter out=new PrintWriter(System.out);
    static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer in=new StreamTokenizer(ins);
    public static void main(String[] args) throws IOException {
        in.nextToken();
        int N = (int) in.nval;
        HashMap<Integer, Integer> map = new HashMap<>();
        HashMap<Integer, Integer> map1 = new HashMap<>();
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < N; i++) {
            in.nextToken();
            int n = (int) in.nval;
            in.nextToken();
            int m = (int) in.nval;
            //夫妻关系or情侣关系,互相联系
            map.put(n, m);
            map.put(m, n);
        }
        in.nextToken();
        int M = (int) in.nval;
        for (int i = 0; i < M; i++) {
            in.nextToken();
            map1.put((int) in.nval, 1);
        }
        for (int i : map1.keySet()) {
            if (!map1.containsKey(map.get(i))) {
                set.add(i);
            }
        }
        ArrayList<Integer> list = new ArrayList<>(set);
        Collections.sort(list);
        System.out.println(list.size());
        if (list.size() != 0) {
            for (int i = 0; i < list.size() - 1; i++) {
                out.print(list.get(i) + " ");
            }
            out.printf("%05d", list.get(list.size() - 1));
        }
        out.flush();
    }
}

image.gif

相关文章
|
3月前
|
安全 Java 数据库连接
【Java每日一题】——第三十五题:一个父类Animal和两个子类Rabbit和Tiger描述动物世界的继承关系两个子类吃的行为各不相同(兔子吃草,老虎吃肉)但睡觉的行为是一致
【Java每日一题】——第三十五题:一个父类Animal和两个子类Rabbit和Tiger描述动物世界的继承关系两个子类吃的行为各不相同(兔子吃草,老虎吃肉)但睡觉的行为是一致
92 0
|
3月前
|
算法 Java 程序员
Java:猴子吃桃问
Java:猴子吃桃问
Java:猴子吃桃问
Java完成迪迦奥特曼打小怪兽
Java完成迪迦奥特曼打小怪兽
187 0
|
3月前
|
安全 Java 开发者
FlyBird(飞翔的小鸟)Java小游戏
FlyBird(飞翔的小鸟)Java小游戏
94 0
每日一题---蓝桥杯猴子吃包子问题Java解决
每日一题---蓝桥杯猴子吃包子问题Java解决
1092 最好吃的月饼(JAVA)
月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种。
1092 最好吃的月饼(JAVA)
|
Java
java 编程习题 之 猴子偷桃
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
96 0
java 编程习题 之 猴子偷桃
1107 老鼠爱大米(JAVA)
翁恺老师曾经设计过一款 Java 挑战游戏,叫“老鼠爱大米”(或许因为他的外号叫“胖胖鼠”)。每个玩家用 Java 代码控制一只鼠,目标是抢吃尽可能多的大米让自己变成胖胖鼠,最胖的那只就是冠军。
 1107 老鼠爱大米(JAVA)
|
Java Scala 开发者
小孩玩游戏问题及 Java 静态|学习笔记
快速学习小孩玩游戏问题及 Java 静态。
61 0