1025 反轉連結串列 (25 分)
阿新 • • 發佈:2018-11-24
24'。最後一個測試點沒過,有大佬可以指出則磕頭跪謝。
#include <iostream> #include <cstdio> #include <vector> using namespace std; struct List{ int data; int next; }; int main() { int first,n,k; cin>>first>>n>>k; List myL[100001]; vector<vector<int> > v(n/k+1); for(int i=0;i<n;i++){ int a; cin>>a; cin>>myL[a].data>>myL[a].next; } int adr=first; for(int i=0;(i<=n/k)&&(adr!=-1);i++){ for(int j=0;(j<k)&&(adr!=-1);j++){ v[i].push_back(adr); adr=myL[adr].next; } } for(int i=0,f=0;i<n/k;i++){ for(int j=k-1;j>=0;j--){ if(f==0){ printf("%05d %d ",v[i][j],myL[v[i][j]].data); f++; }else{ printf("%05d\n%05d %d ",v[i][j],v[i][j],myL[v[i][j]].data); } } } if(n%k!=0){ for(int j=0;j<v[n/k].size();j++){ printf("%05d\n%05d %d ",v[n/k][j],v[n/k][j],myL[v[n/k][j]].data); } } printf("-1"); return 0; }