OUPC2025 OPENコンテスト 2026/03/29 09:00 ~ 2026/03/29 14:00 5:00:00.000

K Make Many OUPC

問題
制限時間: 2 sec メモリ制限: 1024 MB
Make Many OUPC
Statement

正整数 \(O,U,P,C\) が与えられます。 以下の条件をすべて満たす英大文字列 \(S\) に部分文字列(連続する部分列)として含まれる 'OUPC' の個数としてあり得る最大値を求めてください。

  • \(O\) 個の 'O'、\(U\) 個の 'U'、\(P\) 個の 'P'、\(C\) 個の 'C' からなる
  • 部分文字列として含まれる長さ \(4\) の文字列は以下の条件のうち \(1\) つ以上を満たす
    • 'OUPC' である
    • 含まれる文字の種類数は \(3\) 以下である

この問題の制約下で、条件を満たす \(S\) が \(1\) つ以上存在することが証明できます。

\(1\) つの入力につき \(T\) 個のテストケースが与えられるので、それぞれについて解いてください。

Input

入力は以下の形式で標準入力から与えられます。

\(T\)
\(\mathrm{case}_{1}\)
\(\mathrm{case}_{2}\)
\(\vdots\)
\(\mathrm{case}_{T}\)

\(t\) 番目のテストケース \(\mathrm{case}_t\) は以下の形式で与えられます。

\(O~U~P~C\)

入力は以下の制約をすべて満たします。

  • \(1 \leq T \leq 10^5\)
  • \(1 \leq O, U, P, C \leq 10^{18}\)
  • 入力はすべて整数

Output

\(T\) 行出力してください。

\(t\) 行目に \(\mathrm{case}_t\) に対する答えを出力してください。

Scoring

以下の追加制約を満たすデータセットに正解した場合、部分点が与えられます。

  • (15点): \(O = U = \frac{P}{10} = C\)
  • (20点): \(O, U, P, C \leq 15\)
  • (25点): \(O, U, P, C \leq 50\)
  • (40点): 追加制約はありません。

Example

Input 1
4
3 3 5 3
2 2 20 2
20 26 3 29
998244353 10000000007 10000000009 998244353
Output 1
2
2
3
998244353

Note

\(1\) つ目のテストケースについて、例えば \(S =~\)'OUPCPCUPPOOUPC' とすると条件を満たすなかで部分文字列として含まれる 'OUPC' の個数が最大となります。