PAT L1-049. 天梯赛座位分配
原题链接
简单
作者:
青丝蛊
,
2021-04-09 14:35:20
,
所有人可见
,
阅读 222
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n], sum = 0; // sum:序号总个数,不是最大序号
for (auto &c : a) cin >> c, c *= 10, sum += c;
vector<int> v[n];
int p = -1, l = 0; // p:前一个学校的序号
while (sum)
{
for (int i = 0; i < n; i++)
{
if (v[i].size() < a[i])
{
sum--;
if (p != i) v[i].push_back(++l);
else v[i].push_back(l += 2);
p = i;
}
}
}
for (int i = 0; i < n; i++)
{
cout << '#' << i + 1 << endl;
for (int j = 0; j < v[i].size(); j++)
{
cout << v[i][j];
if ((j + 1) % 10 == 0) puts("");
else cout << ' ';
}
}
return 0;
}