1133 Splitting A Linked List (25)

#include<iostream>
#include<algorithm>
#define maxn 100005
using namespace std;

int k=0;
struct Node{
   
	int address,data,next,inList,oriorder;
}node[maxn];

bool cmp(Node a, Node b){
   
	if(!a.inList||!b.inList) return a.inList>b.inList;
	if((a.data>=0&&b.data<0)||(a.data<0&&b.data>=0))
	return a.data<b.data;
	if((a.data>k&&b.data<=k)||(a.data<=k&&b.data>k))
	return a.data<b.data;
	return a.oriorder<b.oriorder;
}

int main(){
   
	int n,head,address,data,next,count=0;
	scanf("%d%d%d",&head,&n,&k);
	for(int i=0;i<n;i++){
   
		scanf("%d%d%d",&address,&data,&next);
		node[address]={
   address,data,next,0,0};
	}
	for(int p=head;p!=-1;p=node[p].next){
   
		node[p].inList=1;
		node[p].oriorder=count;
		count++;
	}
	sort(node,node+maxn,cmp);
	for(int i=0;i<count-1;i++)
	printf("%05d %d %05d\n",node[i].address,node[i].data,node[i+1].address);
	printf("%05d %d -1\n",node[count-1].address,node[count-1].data,-1);
	return 0;
}
全部评论

相关推荐

野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
面试吐槽bot
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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