#include <iostream>
#include <vector>

using namespace std;

int main() {
    // 读入数据
    int n, m;
    cin >> n >> m;
    // 初始化队伍,每个同学独立为一队
    vector<vector<int>> teams(n);
    for (int i = 0; i < n; i++) {
        teams[i].push_back(i+1);
    }

    // 执行命令
    for (int i = 0; i < m; i++) {
        int x, y, a;
        cin >> x >> y >> a;
        // 找到队伍中的位置
        int x_idx, y_idx;
        for (int j = 0; j < teams.size(); j++) {
            if (teams[j][0] == x) {
                x_idx = j;
            }
            if (teams[j][0] == y) {
                y_idx = j;
            }
        }
        // 将y同学及其后面的a个同学从y的队伍中分离出来
        vector<int> temp;
        for (int j = 0; j <= a && j < teams[y_idx].size() - 1; j++) {
            temp.push_back(teams[y_idx].back());
            teams[y_idx].pop_back();
        }
        // 将temp中的同学插入到x的队伍中
        for (int j = temp.size() - 1; j >= 0; j--) {
            teams[x_idx].push_back(temp[j]);
        }
    }

    // 输出结果
    cout << teams.size() << endl;
    for (int i = 0; i < teams.size(); i++) {
        for (int j = 0; j < teams[i].size(); j++) {
            cout << teams[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}
``

原文地址: http://www.cveoy.top/t/topic/iSGW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录