006 - 陣形
時間制限 1 秒 / メモリ制限 64 MB / 得点 6 / x 8 /
問題
プログラマー養成校であるアカベ高校では、チーム戦の競技プログラマーの役割を以下の3タイプに分けています。
C: | コーダー | 言語を熟知しており、コーディングを行う。 |
A: | アルゴリズマー | 論理的思考が得意であり、アルゴリズムを考える。 |
N: | ナビゲーター | 読解力に長けており、問題の分析・デバッグをする。 |
この高校では以下のいずれかの陣形で3人一組のチームを構成しています。
CCA: | バランスがとれている安定型 |
CCC: | スピードを見込めるがリスクの高い速攻型 |
CAN: | 正確に問題を解く慎重型 |
競技プログラミング部のコーチであるあなたは、これらの部員をうまく組み合わせ、できるだけ多くのチームを結成できるよう、毎年気を配っています。そこで、コーダーの人数、アルゴリズマーの人数、ナビゲーターの人数が入力として与えられたとき、最大何チーム作れるかを出力するプログラムを作成してください。
Input
入力は1つのデータセットからなる。入力データは以下の形式で与えられる。
Q c1 a1 n1 c2 a2 n2 : cQ aQ nQ
1行目のQ(0 ≤ Q ≤ 100)はチーム数を求めたい年数である。続くQ行に各年の役割別の人数が与えられる。各行にはコーダーの人数ci(0 ≤ ci ≤ 1000)、アルゴリズマーの人数ai(0 ≤ ai ≤ 1000)、ナビゲーターの人数ni(0 ≤ ni ≤ 1000)が与えられる。
Output
年ごとに、作成できる最大のチーム数を1行に出力する。
Sample Input
4 3 0 0 1 1 1 9 4 1 0 1 2
Sample Output
1 1 4 0