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);

}
全部评论

相关推荐

10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
天降大厂offer:想从事前端就放前端的技术栈,然后项目描述,还有项目做了什么内容,使用了什么技术解决了什么问题优化了什么性能。然后头像可以不要,在读也可以不要,还有bg的话就不要放课程,写哪个学校什么本科,还有绩点排名(如果高的话),然后就是技术栈写好一点,接下来就是项目(有实习就写实习,没有就到项目),项目放两个好一点的,自己包装一下,然后有参加什么竞赛放两个就好了,接下来就是靠你自己了,毕竟211还是很难容易找的,不像我们学院本
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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