萌新求助P1188!

P1188 PASTE

三重门123456 @ 2021-06-03 20:59:45

完全不知道怎么改,求助大佬!


#include <iostream> 
using namespace std;
struct node{
    int num,pos;
}word[100010];

void pre_treatment(int x ){
    for(int i=0;i<=x+10;i++){
        word[i].num=i;
        word[i].pos=i+1;
    }
    return;
}
void ceshi1(){
    cout<<"行数   列数\n"; 
    for(int i=0;i<=15;i++){
        cout<<word[i].num<<"   "
        <<word[i].pos<<endl;
    }
    return;
}

int main( ){
    int n,k;
    cin>>n>>k;
    pre_treatment(n);
    //ceshi1();
    for(int i=1,a,b,c;i<=k;i++){
        cin>>a>>b>>c;
        //前面位置指针跳jump行 ok
        int jump=b-a+1,var=0;//
        for(int j=1;j<=n;j++){

            if(word[var].pos==a){
                word[var].pos+=jump;    
            } //cout<<word[j].pos<<"  ";
            if(word[var].num==b){
                word[var].pos=word[c].num;
            }
            if(word[var].num==c){
                word[var].pos=a;
            }
            var=word[var].pos;
        }//word[a-1].pos+=jump;

        //插入的指针(word[c-1].pos)->被插入的第一个 
        //word[c].pos=a;

        //被插入last的指针-> 
        //word[b].pos=c+1;
//cout<<word[c].pos<<"     "<<word[b].pos<<endl;
    }
    int p1=1,p2=0;
ceshi1();
    for(int i=1;i<=10;i++){
        cout<<word[p1].num<<endl;
        p1=word[p1].pos;
    }
    return 0;
}

by Phartial @ 2021-06-03 21:27:36

最后一个ceshi1()没删


|