注意考虑分开坐的情况
#include<bits/stdc++.h>
#define maxnn 1000005
using namespace std;
typedef long long ll;
struct row{
int rnum;//剩余座位数
int begin;//座位起始号
}r[25];
void init()
{
for(int i=0;i<20;i++)
{
r[i].begin = i*5+1;
r[i].rnum = 5;
}
}
int main()
{
int n;
cin>>n;
init();
int t;
bool flag;//标记是否一次性找到连续座位
while(n--)
{
flag=0;
cin>>t;
for(int i=0;i<20;i++)
{
if(r[i].rnum>=t)
{
flag =1;
for(int j=0;j<t;j++)
{
cout<<r[i].begin<<' ';
r[i].begin +=1;
}
cout<<endl;
r[i].rnum = r[i].rnum-t;
break;
}
}
if(!flag)//若需要分开坐
{
for(int i=0;i<20;i++)
{
if(r[i].rnum>0)
{
while(r[i].rnum && t)
{
cout<<r[i].begin<<' ';
r[i].begin +=1;
r[i].rnum -=1;
t-=1;
}
}
}
if(t==0)
{
cout<<endl;
break;
}
}
}
return 0;
}