问题 G: 21级期末机试-谍影寻踪(10分)
问题 G: 21级期末机试-谍影寻踪(10分)
题目描述
2020年10月,国家安全机关组织实施“迅雷-2020”专项行动,破获数百起间谍窃密事件,有效维护了国家安全和利益。在行动中,我方安全机关破获了一个情报组织,他们是单线联系的。我方给情报组织中的每个人员一个唯一的代号。同时,情报人员为了隐秘,可能会有不同的姓名编号(设定最多两个姓名编号)。我方顺藤摸瓜,分别截获并返回组织信息。请你帮忙汇总并恢复这条组织链条。
输入
多组样例。每组样例包括多行输入,第一行包含一个正整数n(0<n≤1000),表示截获到的情报数。接下来的n行输入形式为A->B,表示A单向联系B,B是A的下线。A和B表示两名组织人员的信息,包括代号x和姓名编号y,用逗号“,”分开。代号x和姓名编号y为整数,满足1≤x,y≤999999。除了第一行,A或B的代号信息在之前的行中出现过。
输出
对于每一组样例,按照顺序在一行中输出该组织的所有成员的信息,用“->”间隔。每个输出占一行。如果有一个代号有两个姓名编号,则认为是一个成员,输出代号和对应的两个姓名编号,用“#”分开。如有两个信息1,2345和1,6666,输出时对应一个成员信息1,2345#6666,两个姓名编号先输入的在前面。
样例输入 Copy
3 1,1234->5,2236 5,2236->3,7177 7,3234->1,1234 4 1,258->10,111111 5,4353->1,36900 7,22->5,4353 10,159->20,220102 2 1,111->2,222 1,101->2,202
样例输出 Copy
7,3234->1,1234->5,2236->3,7177 7,22->5,4353->1,258#36900->10,111111#159->20,220102 1,111#101->2,222#202
#include <stdio.h>
#include <string.h> struct XXX
{int id;int name1;int name2;
};
//整数n(0<n≤1000),表示截获到的情报数
//最多有1001个 int main()
{int n;while(scanf("%d",&n)!=EOF){struct XXX xunlei[1005]={0};int count=0; //已有多少人员for(int i=0;i<n;i++){int Ax,Ay,Bx,By;scanf("%d,%d->%d,%d",&Ax,&Ay,&Bx,&By);//第一次直接创建if(i==0){xunlei[0].id = Ax;xunlei[0].name1 = Ay;xunlei[0].name2 =0 ;xunlei[1].id = Bx;xunlei[1].name1 = By; xunlei[1].name2 =0 ;count=2; }else{//查找新数据的A和B的位置int posA=-1, posB=-1;for(int i=0;i<count;i++){if(xunlei[i].id==Ax) //如果找到已经存在的人员,更新name{posA=i;if(xunlei[i].name1!=Ay) //如果人员有了新名字,在name2更新{xunlei[i].name2=Ay; }} if(xunlei[i].id==Bx) //如果找到已经存在的人员,更新name{posB=i;if(xunlei[i].name1!=By) //如果人员有了新名字,在name2更新{xunlei[i].name2=By; } }}if(posA==-1 && posB!=-1) //B已存在,A不存在、{//将A插在B的前面for(int i=count-1;i>=posB;i--){xunlei[i+1]=xunlei[i];}xunlei[posB].id=Ax;xunlei[posB].name1=Ay;xunlei[posB].name2=0;count++;}if(posA!=-1 && posB==-1) //A存在,B不存在{//把A后面的都往后移,A的后面存放Bfor(int i=count-1;i>=posA+1;i--){xunlei[i+1]=xunlei[i];}xunlei[posA+1].id=Bx;xunlei[posA+1].name1=By;xunlei[posA+1].name2=0;count++; }if(posA!=-1 && posB!=-1){//可能就是增加了name项,上面已经更新了。}if(posA==-1 && posB==-1){//没有关联。不管 }}}for(int i=0;i<count;i++){if(i==0){if(xunlei[i].name2==0)printf("%d,%d",xunlei[i].id,xunlei[i].name1);elseprintf("%d,%d#%d",xunlei[i].id,xunlei[i].name1,xunlei[i].name2); }else{if(xunlei[i].name2==0)printf("->%d,%d",xunlei[i].id,xunlei[i].name1);elseprintf("->%d,%d#%d",xunlei[i].id,xunlei[i].name1,xunlei[i].name2); }}printf("\n");} return 0;
}
问题 G: 21级期末机试-谍影寻踪(10分)相关推荐
- 【华为OD机试真题 JAVA】分积木
JS版:[华为OD机试真题 JS]分积木 标题:分积木 | 时间限制:1秒 | 内存限制:32768K | 语言限制:不限 Solo和koko是两兄弟,妈妈给了他们一大堆积木,每块积木上都有自己的重量 ...
- android高级编程实操期末机试试题,《网络高级编程》201001机考试题A
C#高级编程期末试题 2010<网络高级编程>试题(A卷) (时间:100分钟满分:100) 1.创建C#项目 创建一个名为:exam09班级名册序号姓名拼音VS版本(如,1班,名册序号为 ...
- 【华为OD机试 2023 B卷 | 200分】We Are A Team(C++ Java JavaScript Python)
2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为 2023A卷和2023B卷.你收到的链接上面会标注A卷还是B卷.请注意:根据反馈,目前大部分收到的都是B卷.B卷对 ...
- 华为OD机试(2023.5新题) 分苹果(java,py,c++,js)
华为OD机试真题目录:真题目录 本文章提供java.python.c++.jsNode四种代码 题目描述 A.B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果,他的计算规则是按照二进制加法计算, ...
- 【华为OD机试 2023 B卷 | 100分】 统计射击比赛成绩(C++ Java JavaScript )
在线OJ 已购买本专栏用户,请私信博主开通账号,在线刷题!!! 运行出现 Runtime Error 0Aborted,请忽略 华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将 ...
- 【华为机试真题JavaScript】分班
目录 题目描述 输入描述 输出描述 参考代码 机试介绍 写在最后 题目描述 两个班的小朋友混在了一队,每个小朋友都知道自己和前面的人是不是同班(同班Y,不同班N) 要求小朋友编号为整数,不会小于0或大 ...
- 【华为机试真题 JAVA】分班问题-100
[编程题目 |100分] 分班问题[2021 H2, 2022 Q1,Q2 考试题] 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++262144K,其他语言524288K 64bit ...
- 【华为OD机试真题 JS】分班
标题:分班 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友是否同班,请你帮忙把同班的小朋友找出来 ...
- 华为od机试(适用B卷),独家整理 已参加机试人员的实战技巧
华为 OD 机试过程中,都会碰到哪些问题呢,橡皮擦今天为大家整理一下,希望对即将参加机试的[你]有所帮助. 这个是一系列关于华为 OD 的各种问题,你也可以在评论区提问 每篇博客精选 OD 参与者的 ...
最新文章
- SmartRules让MindManager的交互图变得更加智能
- struts 数据库连接
- jquery简单使用入门
- 如何从官方渠道下载Spring MVC所需jar包
- android之SQLite数据库insert操作
- php usort strcmp,字符串函数演示和usort()进行二维数组排序(0827)
- CMake with WinMinGW
- Atitit.php nginx页面空白 并返回500的解决
- selenium3 + python - js处理readonly属性
- ajax无刷新提交表,Ajax无刷新提交表单和显示
- LeetCode刷题——279. 完全平方数
- pca主成分分析_PCA主成分分析(中)
- wsdl2java 命令 服务端_使用Axis2中的工具wsdl2Java的生成客户端和服务端代码
- 通过python让打印出来的字体看起来像手写
- 计算机信息系统用户管理规定,计算机信息系统保密管理暂行办法 | 中华全国商业信息中心...
- 百度地图开发入门(6):3D建筑
- Google无法验证此账号归你所有解决方法
- 浅谈 Lempel-Ziv压缩方法
- day2 用户体验及用户需求(用户体验五要素、需求、需求收集、需求池)
- git clone出现 fatal: unable to access ‘https://github.com/...‘的解决办法(亲测有效)