BOJ 20006順位戦キュー


https://www.acmicpc.net/problem/20006
1秒、256 MBメモリ
input :
  • p m(1 ≤ p ≤ 300)(1 ≤ m ≤ 300)
  • l(1≦l≦500)ニックネームn
  • output :
  • ゲーム開始有無と部屋のプレイヤーのレベルとID出力
  • ニックネームアルファベット順のプレーヤー出力
  • を開始
  • が始まるとスタート!待ってたらWaiting!出力
  • 条件:

  • プレイヤーが入ることを申請すると、一致する部屋がなければ、新しい部屋を作成して入ります.この場合、この部屋は初めてプレイヤーに入るレベルを基準に、-10から+10に入ることができます.

  • 入場できる部屋があれば、入場させて部屋の庭が全部埋まるのを待つ.

  • このとき,複数の入場可能な部屋があれば,生成された部屋を先に入場する.部屋の庭がいっぱいになるとゲームが始まります.
  • お尻を自由に使って、いつ作ったか保存して、これらの「部屋」を出して、等級制限がいくらなのか、長さがいくらなのかを確認してから追加すればいいのです.
    どうしてそんなに间违ってるの??ただ出力中の条件に辞書の順番がない...
    いつでも並んでいなければなりません...
    import sys
    
    p, m = map(int, sys.stdin.readline().split())
    room = [[] for i in range(p)]
    
    for i in range(p):
        l, n = sys.stdin.readline().split()
        for idx, item in enumerate(room):
    
            if 0 < len(room[idx]) < m:
                pivot_level = item[0][0]
    
                if pivot_level - 10 <= int(l) <= pivot_level + 10:
                    room[idx].append((int(l), n))
                    break
            if len(room[idx]) == 0:
                room[idx].append((int(l), n))
                break
    
    for data in room:
        data.sort(key=lambda x: x[1])
        if len(data) == 0:
            continue
    
        if len(data) == m:
            print("Started!")
            for item in data:
                print(item[0], item[1])
        else:
            print("Waiting!")
            for item in data:
                print(item[0], item[1])