1097 Deduplication on a Linked List (25)

#include<iostream>
#include<cmath>
#include<set>
#include<vector>
#define maxn 1000005

using namespace std;

struct Node{
   
	int address,data,next;
}node[maxn];

int main(){
   
	int head,n,address,data,next;
	scanf("%d%d",&head,&n);
	for(int i=0;i<n;i++){
   
		scanf("%d%d%d",&address,&data,&next);
		node[address]={
   address,data,next};
	}
	vector<Node> result,removed;
	set<int> occured;
	for(int p=head;p!=-1;p=node[p].next){
   
		if(occured.find(abs(node[p].data))!=occured.end())
		removed.push_back(node[p]);
		else{
   
			occured.insert(abs(node[p].data));
			result.push_back(node[p]);
		}
	}
	for(int i=1;i<result.size();i++)
		printf("%05d %d %05d\n",result[i-1].address,result[i-1].data,result[i].address);
		if(result.size()>0)
		printf("%05d %d -1\n",result[result.size()-1].address,result[result.size()-1].data);

	for(int i=1;i<removed.size();i++)
		printf("%05d %d %05d\n", removed[i-1].address, removed[i-1].data, removed[i].address);
		if (removed.size() > 0) printf("%05d %d -1\n", removed[removed.size()-1].address, removed[removed.size()-1].data);

}
全部评论

相关推荐

07-09 19:25
门头沟学院 Java
这是要把每一个投校招的都开盒吗?
26届之耻将大局逆转:裁人的时候一次性追回餐费
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务