思路:
建一个数组a,全部赋值为5,每插入一个座位,则-1。
遍历,判断该排是否可以连续插入。
如果都没有连续的座位,则从前面遍历插入
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] a = new int[21];
Arrays.fill(a, 5);
int n = input.nextInt();
int[] k = new int[n];
boolean flag = false;
for (int i = 0; i < n; i++) {
k[i] = input.nextInt();
}
for (int i = 0; i < n; i++) {
flag = false;
for (int j = 1; j < 21; j++) {
if (a[j] == 0) {
continue;
}
if (a[j] >= k[i]) {
for (int x = 1; x <= k[i]; x++) {
System.out.printf("%d ", (j - 1) * 5 + (5 - a[j]) + x);
}
a[j] -= k[i];
flag = true;
break;
}
}
if (!flag) {
for (int j = 1; j < 21; j++) {
if (a[j] == 0) {
continue;
}
if (k[i] == 0) {
break;
}
System.out.printf("%d ", (j - 1) * 5 + (5 - a[j])+1);
a[j]--;
k[i]--;
j--;
}
}
System.out.println();
}
}
}