例題

合計通過人数とプレイヤーと得点の列を受け取り、4人1組の試合を行ったときに、
「2位抜け」かつ「惜敗上位で合計何人まで」という方式で通過者を決定するとき、
通過者の一覧を出力するプログラムを作成せよ。
惜敗率は (自分の得点) ÷ (その試合の1位の得点) で計算される。試合の組み合わせは
上から4人ずつという組み合わせで行われる。
入力は1行目に合計通過人数が与えられ、2行目以下にスペース区切りでプレイヤー名と
点数が与えられる。入力の例は以下に示す:

5 
p1 110
p2 120
p3 80
p4 135
p5 124
p6 90
p7 95
p8 91

そしてそれの出力として以下のように出力する:

p5
p4
p2
p7
p1

ただし、1行目の入力の値は必ず(合計試合数)×2以上と仮定してもよい。

プログラミングコンテストみたいな風に問題書いてみましたがぶっちゃけ難しくないです。まずTLEしようがない(それこそ相当にキツく最適化しないと通らないとかでもしない限り)。そして何のひねりもないですし。4人1組、2位抜け惜敗n人ってもう完全にQMAの店内大会を想定した作りです。
覚えてたらRubyで書いたコードを後で書きます…がすげえナイーブな実装な点はご了承を。