弱渣答案,仅供参考
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
int main(){
int n;
int pos[20];
int i,j;
int a[100];
while(cin>>n,!cin.eof()){
for(i=0;i<20;i++)pos[i]=5;
for(i=0;i<n;i++)cin>>a[i];
for(i=0;i<n;i++){
for(j=0;j<20;j++){//是否存在连座
if(pos[j]>=a[i]){
int k;
for(k=0;k<a[i];k++)cout<<(5*j+6-pos[j]+k)<<" ";
cout<<endl;
pos[j]=pos[j]-a[i];
j=25;
}
}
if(j!=26){//不存在连座时
int temp=a[i];
for(j=0;j<20&&temp!=0;j++){
if(pos[j]>0){
int k;
if(temp>=pos[j]){
temp=temp-pos[j];
for(k=0;k<pos[j];k++)cout<<(5*j+6-pos[j]+k)<<" ";
}
else{
for(k=0;k<temp;k++)cout<<(5*j+6-pos[j]+k)<<" ";
cout<<endl;
j=25;
}
}
}
}
}
}
return 0;
}