pat乙级1025

////////最后一个测试点还是不能过,不知道为什么。。。
#include<iostream>
#include<vector>
using namespace std;
struct node{
int data,next;
}list[1000000];
int main(){
int start,n,k,a,i;
scanf("%d%d%d",&start,&n,&k);
for(i=0;i<n;i++){
scanf("%d",&a);
scanf("%d%d",&list[a].data,&list[a].next);
}
int m,f=0;
if(n%k==0){
f=1;
m=n/k;
}else{
m=n/k+1;
}
if(start==-1){
printf("-1\n");
}else{
if(f==0){
vector<int> v[m];
int p=start;
i=0;
while(p!=-1&&i<m-1){
for(int j=0;j<k;j++){
v[i].push_back(p);
p=list[p].next;
}
i++;
}
while(p!=-1){
v[i].push_back(p);
p=list[p].next;
}
int flag=0;
for(i=0;i<m-1;i++){
for(int j=k-1;j>=0;j--){
if(flag==0){
printf("%05d %d ",v[i][j],list[v[i][j]].data );
flag=1;
}else{
printf("%05d\n%05d %d ",v[i][j],v[i][j],list[v[i][j]].data );
}
}
}
for(int j=0;j<v[m-1].size();j++){
printf("%05d\n%05d %d ",v[m-1][j],v[m-1][j],list[v[m-1][j]].data );
}
}
////////////////
if(f==1){
vector<int> v[m];
int p=start;
i=0;
while(p!=-1&&i<m){
for(int j=0;j<k;j++){
v[i].push_back(p);
p=list[p].next;
}
i++;
}
int flag=0;
for(i=0;i<m;i++){
for(int j=v[i].size()-1;j>=0;j--){
if(flag==0){
printf("%05d %d ",v[i][j],list[v[i][j]].data );
flag=1;
}else{
printf("%05d\n%05d %d ",v[i][j],v[i][j],list[v[i][j]].data );
}
}
}
}
printf("-1");
}

return 0;
}

上一篇:gunicorn的配置使用


下一篇:【转载】web 部署专题(一):Gunicorn运行与配置方法