L1-049 天梯赛座位分配 (20 分)

 

 

 

 我们用一个二维数组存数据。用g[i][0]存第i个学校的总人数。

然后 我们 以行为学校编号,展开每个学校的人数。

从第一列到最后一列依次由上往下编号。

复制代码
#include <iostream>
using namespace std;
const int N = 110;
int g[N][N];
int n;

int main()
{
    cin >> n;
    int col = -1;
    for(int i = 1, num; i <= n; i++)
    {
        cin >> num;
        g[i][0] = num * 10;
        col = max(col, num * 10);  // 取人数最多的当作列
    }
    int pre = 0, num = 0;
    for(int i = 1; i <= col; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            if(i > g[j][0]) continue;  // 当前学校的总人数小于当前列就不用再编号了 人都没了
            if(pre == j) ++num;  // 如果前一个编号的跟现在的编号的来自同一个学校 就要跨一个数
            g[j][i] = ++num;
            pre = j; // 记录当前编号的是哪个学校的,用于对下一位编号
        }
    }
    for(int i = 1; i <= n; i++)
    {
        cout << '#' << i;
        for(int j = 1; j <= g[i][0]; j++)
        {
            if(j % 10 == 1) cout << endl << g[i][j];
            else cout << ' ' << g[i][j];
        }
        cout << endl;
    }
    return 0;
}
复制代码

 

posted @   飘向远方丶  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示