AcWing 3233. 火车购票
原题链接
简单
作者:
鹤唳_88
,
2024-12-13 17:33:07
,
所有人可见
,
阅读 3
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
bool seat[22][6];
int num[22];
int main(){
int n;
cin>>n;
for(int i=0;i<=20;i++) num[i]=5;
while(n--){
int nn;
cin>>nn;
int x=nn;
int row=-1;
for(int i=0;i<20;i++){
if(nn<=num[i]) {
row=i;
break;
}
}
if(row==-1){
for(int i=0;i<20;i++){
for(int j=1;j<=5;j++){
if(x>=1&&!seat[i][j]){
cout<<i*5+j<<' ';
seat[i][j]=true;
num[i]--;
x--;}
}
}
cout<<endl;
}
else{
int col;
for(int j=1;j<=5;j++){
if(!seat[row][j]){
col = j;
break;
}
}
//分别输出一维坐标
while(x--){
int pos = 5*row+col;
seat[row][col] =true;
num[row]--;
col++;
cout<<pos<<" ";
}
cout<<endl;
}
}
return 0;
}