1075. 链表元素分类(25)
2018-03-20 18:39
330 查看
跟1025题类似,使用vector来进行排序#include<cstdio>
#include<vector>
using namespace std;
struct node{
int add,num,next;
int flag=0;
};
int main()
{
int first,n,k;
vector<node> v(100005);
vector<node> vsort,vout;
//freopen("1075.txt","r",stdin);
scanf("%d %d %d",&first,&n,&k);
node s;
for(int i=0;i<n;i++)
{
scanf("%d %d %d",&s.add,&s.num,&s.next);
v[s.add]=s;
}
if(first==-1)
printf("-1\n");
else
{
int next=first;
while(next!=-1)
{
vsort.push_back(v[next]);
next=v[next].next;
}
int New=vsort.size();
//输入负值元素
for(int i=0;i<New;i++)
{
if(vsort[i].num<0&&vsort[i].flag==0)
{
//printf("%d\n",vsort[i].num);
vout.push_back(vsort[i]);
vsort[i].flag=1;
}
}
//输入[0,k]元素
for(int i=0;i<New;i++)
{
if(vsort[i].num<=k&&vsort[i].flag==0)
{
vout.push_back(vsort[i]);
vsort[i].flag=1;
}
}
for(int i=0;i<New;i++)
{
if(vsort[i].flag==0)
{
vout.push_back(vsort[i]);
vsort[i].flag=1;
}
}
for(int i=0;i<New-1;i++)
{
vout[i].next=vout[i+1].add;
printf("%05d %d %05d\n",vout[i].add,vout[i].num,vout[i].next);
}
printf("%05d %d -1\n",vout[New-1].add,vout[New-1].num);
}
return 0;
}
相关文章推荐
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- PAT乙级1075. 链表元素分类(25)
- 1075. 链表元素分类(25) PAT乙级真题
- 1075.链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- PAT (Basic Level) Practise (中文) 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)-PAT乙级真题
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075 链表元素分类(25 分)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)