您的位置:首页 > 职场人生

PAT 乙级 1065. 单身狗(25)

2017-01-08 17:16 316 查看


1065. 单身狗(25)

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

输入格式:

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

输出格式:

首先第一行输出落单客人的总人数;随后第二行按ID递增顺序列出落单的客人。ID间用1个空格分隔,行的首尾不得有多余空格。
输入样例:
3
11111 22222
33333 44444
55555 66666
7
55555 44444 10000 88888 22222 11111 23333

输出样例:
5
10000 23333 44444 55555 88888

分析:

以后再写分析吧~~~现在累了~~

using System;
using System.Collections.Generic;
using System.Text;

namespace PAT
{
class Program
{
static void Main()
{
int[] Couple = new int[100000];
int[] personFlag = new int[1000001]; //flag为-1才是单身狗, 0或1都不是

for (int i = 0; i < 100000; i++)
Couple[i] = 100000;
int coupleNumber = int.Parse(Console.ReadLine());
List<int> singledog = new List<int>();
string[] infos;
int id;
int id1, id2;
for (int i = 0; i < coupleNumber; i++)
{
infos = Console.ReadLine().Split(' ');
id1 = int.Parse(infos[0]);
id2 = int.Parse(infos[1]);
Couple[id1] = id2;
Couple[id2] = id1;
}

int personNumber = int.Parse(Console.ReadLine());
infos = Console.ReadLine().Split(' ');

for (int i = 0; i < personNumber; i++)
{
id = int.Parse(infos[i]);
personFlag[id] += 1;
personFlag[Couple[id]] += 100000;
}

for (int i = 1; i < 100000; i++)
{
if (personFlag[i] == 1)
singledog.Add(i);
}

StringBuilder msg = new StringBuilder();
Console.WriteLine(singledog.Count);
if (singledog.Count > 0)
{
foreach (int item in singledog)
{
msg.Append(item.ToString("00000"));
msg.Append(" ");
}
Console.WriteLine(msg.ToString().TrimEnd());
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PAT c# 求职 算法