No.3397 Max Weighted Floor of Linear
タグ : / 解いたユーザー数 20
作問者 : 👑
amentorimaru
cleantted
問題文
$T$ 個のテストケースがあります。
各テストケースについて、 正の整数 $N,M$ と 整数 $A,B,C,D$ が与えられます。
$\max\left\lbrace Ax+B\left\lfloor(Cx+D)/M\right\rfloor\mid x\in\mathbb{Z},\ 0\leq x\lt N\right\rbrace$ を求めてください。
つまり、整数 $x$ を $0$ 以上 $N$ 未満で動かしたとき、式 $Ax+B\left\lfloor(Cx+D)/M\right\rfloor$ が取りうる値の中で最大のものを求めてください。
$\lfloor\cdot\rfloor$ は床関数(実数に対して自身以下の最大の整数を返す関数)を示します。
入力
$T$ $N _ 1$ $M _ 1$ $A _ 1$ $B _ 1$ $C _ 1$ $D _ 1$ $N _ 2$ $M _ 2$ $A _ 2$ $B _ 2$ $C _ 2$ $D _ 2$ $\vdots$ $N _ T$ $M _ T$ $A _ T$ $B _ T$ $C _ T$ $D _ T$
- $1\leq T\leq 10^5$
- $1\leq N,M\leq 10^{9}$
- $-10^{9}\leq A,B\leq 10^{9}$
- $0\leq C,D\lt M$
- 入力は全て整数
出力
$T$ 行出力して下さい。
最後に改行してください。
サンプル
サンプル1
入力
8 1 1 0 0 0 0 5 3 7 2 2 1 3 2 -6 7 1 1 4 2 1 -10 1 0 6 3 -8 9 2 2 10 5 -3 10 2 0 12 10 -1 7 4 1 12 4 -18 19 3 3
出力
0 34 1 1 2 6 18 3
$f(x)=Ax+B\left\lfloor(Cx+D)/M\right\rfloor$ とおくと、
- $N=1, M=1, A=0, B=0, C=0, D=0$ のとき、 $f(x)$ は $0\leq x\lt N$ において $\lbrack 0\rbrack$ となり、 $x=0$ のときに最大値 $f(0)=0$ を取ります。
- $N=5, M=3, A=7, B=2, C=2, D=1$ のとき、 $f(x)$ は $0\leq x\lt N$ において $\lbrack 0, 9, 16, 25, 34\rbrack$ となり、 $x=4$ のときに最大値 $f(4)=34$ を取ります。
- $N=3, M=2, A=-6, B=7, C=1, D=1$ のとき、 $f(x)$ は $0\leq x\lt N$ において $\lbrack 0, 1, -5\rbrack$ となり、 $x=1$ のときに最大値 $f(1)=1$ を取ります。
- $N=4, M=2, A=1, B=-10, C=1, D=0$ のとき、 $f(x)$ は $0\leq x\lt N$ において $\lbrack 0, 1, -8, -7\rbrack$ となり、 $x=1$ のときに最大値 $f(1)=1$ を取ります。
サンプル2
入力
10 65536 52220 7325 -20393 18757 11822 65536 47257 -20148 27317 34855 9762 65536 58215 -20112 35971 32549 36876 65536 57269 -19804 32041 35397 53181 65536 60607 14512 -37473 23471 16441 65536 57995 26034 -33647 44873 14564 65536 56689 -24409 39848 34725 14205 65536 50405 22027 -35447 31322 8 65536 25573 11413 -18490 15785 7935 65536 53895 19237 -33308 31127 29265
出力
15775 5642 22785 29754 27308 25196 9985 35441 12752 15221
サンプル3
入力
10 1000000000 102334155 433494437 -701408733 63245986 31415926 1000000000 102334155 -433494437 701408733 63245986 31415926 1000000000 484213958 185444158 -300051715 299263911 32091580 1000000000 771251471 185127374 -485073613 294346581 538843377 1000000000 679842423 -216301801 395451124 371856676 421561913 1000000000 687384999 -262204151 424255264 424827257 346851418 1000000000 432108097 -119358786 164913823 312744541 344218736 1000000000 779304889 -280890788 483327461 452901153 335911945 1000000000 452352635 109686923 -286225731 173349784 301388694 1000000000 971385323 370977589 -600253428 600350066 12805751
出力
486080765 215327987 280165601 146171564 245214372 214077322 131370897 208333696 95522302 592340299
-
$f(x) = 433494437 x - 701408733 \lfloor (63245986 x + 31415926) / 102334155 \rfloor$
-
$f(x) = -433494437 x + 701408733 \lfloor (63245986 x + 31415926) / 102334155 \rfloor$
(日本語問題文版)
(English statement version)
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。