1074 Reversing Linked List

 

2019年1月29日

15:45

题目都读错了。。。

#include <iostream>

#include <vector>

#include <cstdio>

using namespace std;

typedef struct P

{

    int x;

    int no, ne;

}P;

struct P y;

const int maxn = 2e5 + 5;

struct P p[maxn], qq[maxn];

struct P z;

vector<P> q;

int main()

{

    int x1, n, k;

    while(cin >> x1 >> n>> k)

    {

        for(int i = 0; i < n; i++)

        {

            int no;

            cin >> no;

            cin >> p[no].x >> p[no].ne;

            p[no].no = no;



        }

        int i = x1;

        while(i != -1)

        {

            q.push_back(p[i]);

            i = p[i].ne;

        }

        int t = 1;

        /*for(i =k * t - 1;; i--)

        {

            if(i > q.size())

                break;

            qq.push_back(q[i]);

            if(i == k * (t - 1))

            {

                t++;

                i = k * t ;

            }

        }*/

        for(i = 0; i <= q.size() / k * k - 1; i++)

        {

            qq[i / k * k + (k - 1 - i % k)] = q[i];

        }

        for(i = q.size() / k * k; i <q.size(); i++)

            qq[i] = q[i];

        for(i = 0; i < q.size() - 1; i++)

            printf("%05d %d %05d\n", qq[i].no, qq[i].x, qq[i + 1].no);

        printf("%05d %d -1\n", qq[i].no, qq[i].x);

    }

    return 0;

}

/*

00100 1 1

00100 1 -1



00100 3 1

02031 2 -1

00100 1 02031

00144 4 24155



00100 6 4

00000 4 99999

00100 1 12309

68237 6 -1

33218 3 00000

99999 5 68237

12309 2 33218



00100 6 3

00000 4 99999

00100 1 12309

68237 6 -1

33218 3 00000

99999 5 68237

12309 2 33218

*/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值