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

相关文章
|
安全 Java 程序员
java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
95 0
java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
Java完成迪迦奥特曼打小怪兽
Java完成迪迦奥特曼打小怪兽
228 0
|
9月前
|
安全 Java 数据库连接
【Java每日一题】第三十七题:思考应用题
【Java每日一题】第三十七题:思考应用题
|
算法 Java
蓝桥杯 算法提高 超级玛丽 (Java)
蓝桥杯 算法提高 超级玛丽 (Java)
102 0
|
算法
java202303java学习笔记第三十天五道经典算法题2
java202303java学习笔记第三十天五道经典算法题2
43 0
|
算法
java202303java学习笔记第三十天五道经典算法题1
java202303java学习笔记第三十天五道经典算法题1
52 0
|
算法
java202303java学习笔记第三十天五道经典算法题3
java202303java学习笔记第三十天五道经典算法题3
54 0
老师,我学的是假java吗?╥﹏╥...
老师,我学的是假java吗?╥﹏╥...
1107 老鼠爱大米(JAVA)
翁恺老师曾经设计过一款 Java 挑战游戏,叫“老鼠爱大米”(或许因为他的外号叫“胖胖鼠”)。每个玩家用 Java 代码控制一只鼠,目标是抢吃尽可能多的大米让自己变成胖胖鼠,最胖的那只就是冠军。