問題一覧 > 通常問題

No.3453 Crape Shop

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 78
作問者 : くらげ / テスター : tyawanmusi dyktr_06 t5ugu おのせ hikikomori
ProblemId : 12972 / MMA Contest 021 (順位表) / 自分の提出
問題文最終更新日: 2026-02-28 00:15:43
MMA Contest 021の他の問題:

問題文

あなたはクレープ屋を営んでいます。
このクレープ屋のメニューはクレープ $1$ からクレープ $3$ の $3$ 種類であり、クレープ $1$ にはりんごを、クレープ $2$ にはバナナを、クレープ $3$ にはりんごとバナナの両方をそれぞれ $1$ つずつ使います。

今日開店する時点で、りんごとバナナはそれぞれ $A$, $B$ 個の在庫があります。また、今日は $N$ 人の客が来店し、客 $i$ ( $1 \le i \le N$ ) はクレープ $p_i$ を注文することがわかっています。
どの客もクレープは $1$ つずつ注文し、また、注文を受けたら必ず材料を $1$ 個ずつ消費して注文された種類のクレープを作るものとします。

「注文されたクレープの材料が足りなくて作れない」ということが初めて起こるのは何人目の客が来たときかを求めてください。在庫切れを起こさず $N$ 人すべての注文のクレープを作ることができる場合は -1 を出力してください。

ただし、材料が足りなくて作れないとは注文を受けた時点でそのクレープに使われる材料の在庫が $0$ 個以下であることを表します。また、りんごとバナナ以外の材料は無限にあるものとします。

制約

  • $1 \le N \le 10 ^ 5$
  • $1 \le A, B \le 10 ^ 5$
  • $1 \le p_i \le 3$
  • 入力はすべて整数

入力

$N$
$A$ $B$
$p_1$ $p_2$ $\dots$ $p_N$

出力

注文されたクレープが作れないのは何人目の客が来たときか、$1$ 行で出力してください。そのようなことが起こらない場合は -1 を出力してください。

サンプル

サンプル1
入力
6
2 4
1 3 2 2 3 1
出力
5

はじめりんごはクレープ $2$ つ分あり、客 $1$、$2$ の注文するクレープに $1$ つずつ使われます。次にりんごを使ったクレープを注文するのは客 $5$ であり、このときりんごの在庫が足りなくなります。今回のケースではバナナが足りなくなることはないので、5 を出力します。

サンプル2
入力
6
4 4
1 3 2 2 3 1
出力
-1
サンプル3
入力
10
6 3
1 3 2 1 3 3 1 1 3 2
出力
6

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