1074 Reversing Linked List (25 分)

Reversing Linked List

版本1

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
struct node{
	int add,value,index,next;
}E[maxn];
bool cmp(node a, node b){
	return a.index < b.index;

}
bool cmp1(node a, node b){
	return a.index > b.index;
}

int main(){
	int p,n,add,value,next,t=0,k;
	cin>>p>>n>>k;
	for(int i=0;i<maxn;i++){
		E[i].index = maxn;
	}
	for(int i=0;i<n;i++){
		cin>>add>>value>>next;
		E[add].add = add;
		E[add].value = value;
		E[add].next = next;
	}
	
	while(p!=-1){
		E[p].index=t;
		p = E[p].next;
		t++; 
	}
	sort(E,E+maxn,cmp); 
	//隔K步反转 
	for(int i=0;i<=t-k;i+=k){ //这个等号很关键 
		sort(E+i, E+i+k,cmp1);
	}
	//输出 
	for(int i=0;i<t;i++){
		printf("%05d %d",E[i].add,E[i].value);
		if(i!=t-1) printf(" %05d\n",E[i+1].add);
		else printf(" -1\n");
	}
	return 0;
} 
全部评论

相关推荐

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

创作者周榜

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