#include using namespace std; int main() { //0:可以销售,-1:已经销售 int a[100]; for (int i = 0; i < 100; i++) { a[i] = 0; } int n; cin >> n; for (int i = 0; i < n; i++) { int p; cin >> p; //假设输入的是2,那么就是从小到大找连续两个 //(1)从头遍历可能的座位 bool success = false; for (int j = 0; j < 100; j++) { if (a[j] == 0) { bool can = true; //向后找连续p个,注意是5个人一排~! for (int k = j + 1; k < j + p; k++) { if (a[k] == -1 || (j % 10 <= 4 && k % 10 >= 5) || (j % 10 >= 5 && k % 10 <= 4)) { can = false; break; } } if (can) { a[j] = -1; cout << j + 1 << " "; for (int k = j + 1; k < j + p; k++) { a[k] = -1; cout << k + 1 << " "; } cout << endl; success = true; break; } } } if (!success) { int count = 0; //从小的开始插空 for (int j = 0; j < 100; j++) { if (a[j] == 0) { a[j] = -1; cout << j + 1 << " "; count++; } //如果达到个数 if (count == p) { cout << endl; break; } } } } return 0; }