第一次完成“没有连续座位”的情况
后面改进就满分了
#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
int main()
{
//freopen("in.txt","r",stdin);
int n;
cin>>n;
int a[21][6]={0};//座位 ,0表示空位
int p,k=0,f=1;
while(n--)
{
cin>>p;
_for(i,1,20)//找连续的座位
{
_for(j,1,5)
{
if(a[i][j]==0)
{
k++;
if(k==p)//找到了
{
for(int l=j-p+1; l<=j; l++)
{
a[i][l]=1;
cout<<(i-1)*5+l<<" ";
}
cout<<endl;
f=0;
break;
}
}
else
{
k==0;
}
}
k=0;
if(!f)//找到就跳出循环
break;
}
if(f)//没有连续座位的
{
int pp=0;
for(int ii=1;ii<=20 ;ii++)
{
_for(jj,1,5)
{
if(a[ii][jj]==0 && pp!=p)
{
a[ii][jj]=1;
cout<<(ii-1)*5+jj<<" ";
pp++;
}
}
}
cout<<endl;
}
k=0;
f=1;
}
//fclose(stdin);
return 0;
}