Untitled
unknown
plain_text
3 years ago
1.4 kB
3
Indexable
#include <stdio.h> #include <stdlib.h> //#include "function.h" int main(){ int n, k; while(scanf("%d%d", &n, &k)!=EOF){ head = createList(n); solve(n, k); } return 0; } #ifndef FUNC_H_INCLUDED #define FUNC_H_INCLUDED typedef struct _Node{ int number; struct _Node* prev; struct _Node* next; }Node; Node* head; int a; Node* createList(int n){ if(a==0){ head=(Node*)malloc(sizeof(Node)*n); a=1; for(int i=0;i<n;i++){ head[i].number=i+1; if(i!=0) head[i]->prev=head[i]; else head[i].prev=NULL; if(i!=n-1) head[i]->next=head[i+2]; else head[i].next=NULL; } return head; } else{ a=2; } } void solve(int n, int m){ Node* go=head,*yoyo=head; if(a!=1){ if(n==1){ head=head->next; head->prev=NULL; } while(m!=0){ if(yoyo->next==NULL) break; yoyo=yoyo->next; } go->prev=yoyo; go->next=yoyo->next; if(yoyo->next!=NULL) yoyo->next->prev=go; yoyo->next=go; go=head; } for(int i=0;i<n-1;i++){ printf("%d ",go->number); go=go->next; } printf("%d\n",go->number); } #endif
Editor is loading...