No.1341 真ん中を入れ替えて門松列
タグ : / 解いたユーザー数 25
作問者 : nmnmnmnmnmnmnm / テスター : 37zigen
問題文
門松列とは3つの整数が左から$A$、$B$、$C$と並んでいる時に、
全ての値が異なり$A$、$B$、$C$のうち2番目に大きな整数が$A$か$C$である場合をいう。
また、門松ポイントとは3つの整数が門松列であるとき、3つの整数のうちの最大値である。
3つの正の整数$A$、$B$、$C$が左からこの順番で$N$組与えられる。
任意の2つの組の間で真ん中の正の整数$B$のみ入れ替える操作が$N$回まで可能である。
操作によってすべての組を門松列にできるか判定せよ。
できる場合にはすべての組の門松ポイントの総和を$M$ポイント以上にできるかを判定せよ。
入力
$N$ $M$ $A_1$ $B_1$ $C_1$ $A_2$ $B_2$ $C_2$ $ \vdots\ $ $A_N$ $B_N$ $C_N$
$N$は与えられる3つの正の整数$A$、$B$、$C$の組の数。$1 \le N \le 3000$。
$M$は問題文中の判定に用いるポイント数。$0 \le M \le 3000000000000 = 3 \times 10^{12}$。
$A_i$、$B_i$、$C_i$は与えられる$i$番目の組の正の整数$A$、$B$、$C$。$A_i \neq C_i$。$1 \le A_i,B_i,C_i \le 1000000000 = 10^9$。
出力
すべて門松列にできない場合は、1行のみで"NO"と出力せよ。
すべて門松列にできる場合は1行目に"YES"と出力せよ。
すべて門松列にできる場合で、門松ポイントの総和を$M$ポイント以上にできる場合は2行目に"KADOMATSU!"と出力せよ。
すべて門松列にできる場合で、門松ポイントの総和を$M$ポイント以上にできない場合は2行目に"NO"と出力せよ。
サンプル
サンプル1
入力
2 5 2 3 4 1 1 2
出力
YES KADOMATSU!
1番目の組の真ん中の数の3と2番目の組の真ん中の数の1を入れ替えます。
すると1回の入れ替えで2組とも門松列になるので"YES"を出力します。
1番目の組の門松ポイントは「2,1,4」の最大値なので4です。
2番目の組の門松ポイントは「1,3,2」の最大値なので3です。
よって、門松ポイントの総和は4+3=7ポイントです。
これは判定ポイントの5ポイント以上なので"KADOMATSU!"と出力します。
サンプル2
入力
3 20 7 5 5 2 8 1 4 3 5
出力
YES KADOMATSU!
2回の操作でできます。
サンプル3
入力
1 100 2 1 3
出力
YES NO
最初から門松列なので0回の操作ですべて門松列にすることは可能です。
しかし、門松ポイントの総和を判定ポイント以上にすることはできません。
サンプル4
入力
2 0 1 2 3 4 1 3
出力
NO
すべて門松列にすることができません。
サンプル5
入力
5 2021 5 10 1 3 3 16 7 8 8 11 1979 15 6 8 9
出力
YES KADOMATSU!
2021年あけましておめでとうございます。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。