はまやんはまやんはまやん

hamayanhamayan's blog

お客様を誘導せよ [yukicoder 893]

https://yukicoder.me/problems/no/893

解説

https://yukicoder.me/submissions/384923

シミュレーションする。
Pの上限が102なので、最高でも100周はする。
レジが103個あるので、1周に103回確認するとしても、
全体の確認回数は105回なので間に合う。
先頭から順番にとっていく構造はqueueあたりを使うと、先頭管理がしやすい。

int N;
queue<int> Q[1010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) {
        int P; cin >> P;
        rep(j, 0, P) {
            int a;
            cin >> a;
            Q[i].push(a);
        }
    }

    vector<int> buf;
    rep(_, 0, 100) {
        rep(i, 0, N) if(!Q[i].empty()) {
            buf.push_back(Q[i].front());
            Q[i].pop();
        }
    }

    int M = buf.size();
    rep(i, 0, M) {
        if(i) printf(" ");
        printf("%d", buf[i]);
    }
    printf("\n");
}