問題一覧 > 通常問題

No.3023 Utility is Max?

レベル : / 実行時間制限 : 1ケース 1.000秒 / メモリ制限 : 256 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 12
作問者 : ArcAki / テスター : 👑 p-adic
0 ProblemId : 11548 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-02-17 01:02:40

お知らせ

2月17日1:03 (JST) に問題文を変更しました。

問題文

Sさんはお昼ご飯に「春巻きご飯」と「チャーハン」を食べることにしており、一日一回Kさんが買い出しに行きます。
彼女らが住む冥界にはこれらを売っている店が店 $1$ と店 $2$ の二つだけあります。これらのお店での価格は異なる可能性があります。
Kさんは日 $i$ にSさんに以下の情報を伝えます。ただし一日に行けるお店はどちらか一方で、どちらのお店で購入するかは伝えません。

  • 当日のお店 $j$ における「春巻きご飯」の1単位あたりの価格 ${A_i}_j$ と「チャーハン」の1単位あたりの価格 ${B_i}_j$
  • 当日の予算 $I_i$
Sさんはこの情報を聞いた上で店 $j$ で買う場合、「春巻きご飯」及び「チャーハン」をそれぞれ ${X_i}_j, {Y_i}_j (j=1, 2)$ だけ購入するようにKさんに申しつけます。
ここでSさんの好みは「春巻きご飯」の消費量 $x (> 0)$ 及び「チャーハン」の消費量 $y (>0)$ に対し日毎に以下の条件を満たす関数 $f_i(x, y)$ として定められており入力では与えられません。

  • 正の実数である $x, y$ のどちらについても、一方の値について変化させる時 $f_i(x, y)$ は狭義単調増加である。
    つまり $0< x_1 < x_2$ なるすべての $(x_1, x_2)$ の組に対し任意の $y > 0$ で $f_i(x_1, y) < f_i(x_2, y)$ であり、
    $ 0 < y_1 < y_2$ なるすべての $(y_1, y_2)$ の組に対し任意の $x > 0$ で $f_i(x, y_1) < f_i(x, y_2)$ である。
Sさんの満足度は「春巻きご飯」と「チャーハン」の消費量をそれぞれ $X, Y$ とした時 $f_i(X, Y)$ と定めます。
Sさんはおっちょこちょいなのか予算に対してそもそも買えない量を指定したり買える消費量のうち満足度が最大にならないものを指定することがあります。
多忙なKさんに変わって $Q$ 日分の 「春巻きご飯」と「チャーハン」の量の組み合わせ ${X_i}_j, {Y_i}_j (i=1,2,…,Q, j=1,2)$ が最適でありうるかそれぞれ求めてください。
ただし $i$ 日目に指定された消費量の組み合わせ ${X_i}_j, {Y_i}_j$ に対して最適でありうるとは以下の条件を満たすことを指します。
  • $i$ 日目にKさんがどちらの店を訪れても指定された量を予算内に購入可能である。
    つまり購入する量の組 ${X_i}_j, {Y_i}_j$ に対して ${A_i}_j × {X_i}_j + {B_i}_j × {Y_i}_j ≤ I_i (j = 1,2)$ である。
  • $i$ 日目のSさんの好み次第では $i$ 日目にどちらの店を訪れても指定された量で、それぞれのお店における最大の満足度を得ることが可能である。
    つまり指定された量の組 $({X_i}_1, {Y_i}_1,{X_i}_2, {Y_i}_2)$ に対して以下を満たす好み $f_i(x, y)$ が存在する。
    • $j = 1, 2$ の双方に対して以下を満たす。
      • ${A_i}_j × x + {B_i}_j × y ≤ I_i$ なる任意の正実数の組 $(x, y)$ に対して $f_i(x, y) ≤ f_i({X_i}_j, {Y_i}_j)$ を満たす。
    ここで ${X_i}_j, {Y_i}_j$ は入力においては正整数として与えられますが $x, y$ は整数とは限らない正実数の組み合わせ全てを考えるものとします。

入力

$Q$
$I_1$
${A_1}_1\ {B_1}_1\ {X_1}_1\ {Y_1}_1$
${A_1}_2\ {B_1}_2\ {X_1}_2\ {Y_1}_2$
$I_2$
${A_2}_1\ {B_2}_1\ {X_2}_1\ {Y_2}_1$
${A_2}_2\ {B_2}_2\ {X_2}_2\ {Y_2}_2$
$…$
$I_Q$
${A_Q}_1\ {B_Q}_1\ {X_Q}_1\ {Y_Q}_1$
${A_Q}_2\ {B_Q}_2\ {X_Q}_2\ {Y_Q}_2$

  • $1 ≤ Q ≤ 10^5$
  • $1 ≤ I_i, {A_i}_j, {B_i}_j, {X_i}_j, {Y_i}_j ≤ 10^9$
  • 入力は全て整数である。

出力

日 $i$ の指定が最適でありうるならYesを、最適でありえない場合はNoを出力してください。$i$ 行目には日 $i$ の答えを出力してください。 最後に改行してください。

サンプル

サンプル1
入力
4
10
2 3 2 2
1 4 6 1
12
6 6 100 100
13 1 1 1
1000000000
1 1 1 1
2 1 2 3
29
2 5 2 5
7 1 4 1
出力
Yes
No
No
No

例えば1日目では「春巻きご飯」、「チャーハン」が店1, 2それぞれで(2, 3), (1, 4)の価格になっています。この指定方法でそれぞれのお店において満足度が最大になる好みは存在するのでYesを出力してください。2日目ではそもそも購入できない指定となっているのでNoを出力します。

サンプル2
入力
1
1000000000
1 10 999999990 1
10 1 1 999999990
出力
Yes

流石に炭水化物すぎますね。すごい食欲です。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。