atcoder#AGC049C. [AGC049C] Robots

[AGC049C] Robots

题目描述

数直線上にロボットがいます. 具体的には,各 i=0,1,2,,10100 i=0,1,2,\cdots,10^{100} について,座標 i i 1 1 台のロボットがおり,ロボット i i と呼ばれています.

たくさんのボールがあります. それぞれのボールには,正整数が 1 1 つ書いてあります. これらのボールの情報は,長さ N N の整数列 A A B B で表されます. 具体的には,各 i i (1  i  N 1\ \leq\ i\ \leq\ N ) について,Ai A_i の書かれたボールが Bi B_i 個あります.

今からすぬけくんは,次の操作を行います.

  • Step 1: 0 0 個以上のボールを選び,そこに書かれている整数を,1 1 以上 10100 10^{100} 以下の好きな正整数に書き換える.(ボールごとに書き換える整数を選択できる)

  • Step 2: ボールを 1 1 つずつ食べる.ボールを食べる順番は自由に選べる.ボールを食べるたびに,以下の操作を行う.

    • 今食べたボールに書かれた整数を v v とする.ロボット v v が存在するなら,それを,現在の座標より 1 1 小さい座標へ移動させる.もし移動先に別のロボットがいるなら,そのロボットは破壊される.(ロボット v v は無事である)

すぬけくんは,ロボット 0 0 が破壊されないように,すべてのボールを食べきりたいです. すぬけくんが目標を達成するために Step 1 で書き換える必要のあるボールの個数の最小値を求めてください.

输入格式

入力は以下の形式で標準入力から与えられる.

N N A1 A_1 A2 A_2 \ldots AN A_N B1 B_1 B2 B_2 \ldots BN B_N

输出格式

答えを出力せよ.

题目大意

数轴上有 10100+110^{100}+1 个机器人。初始时,编号为 ii 的机器人在点 ii 上。 (i=0,1,2,,10100i=0,1,2,\dots,10^{100})

给出两个长度为 NN 的序列 A,BA,B,表示有 BiB_i 个球被写上了数 AiA_i (1iN1 \le i \le N)。

Snuke 将会执行以下两个操作:

  • 选择任意个球(可以为 00 个),对于每个球将其上的数改为一个整数 xx 满足 1x101001 \le x \le 10^{100},不同的球可以选择不同的数。
  • 按任意顺序吃掉所有的球。每当他吃掉一个球时,设写在这个球上的数为 vv,如果编号为 vv 的机器人还没被摧毁,则将编号为 vv 的机器人向左移 11 个单位长度。如果新的位置上有机器人,则新的位置上的机器人将被摧毁。

Snuke 希望在不摧毁编号为 00 的机器人的前提下吃掉所有球。求他在执行第一个操作时最小选择的球的个数。

3
1 2 3
1 2 1
1
4
1 3 5 7
3 1 4 1
0

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • $ 1\ \leq\ A_1\ <\ A_2\ <\ \ldots\ <\ A_N\ \leq\ 10^9 $
  • 1  Bi  109 1\ \leq\ B_i\ \leq\ 10^9

Sample Explanation 1

2 2 の書かれたボールを 1 1 つ選び,3 3 に書き換えればよいです. その後,以下の順序でボールを食べればよいです. - 2 2 の書かれたボールを食べる.ロボット 2 2 を座標 2 2 から座標 1 1 へ移動させる. ロボット 1 1 が破壊される. - 3 3 の書かれたボールを食べる.ロボット 3 3 を座標 3 3 から座標 2 2 へ移動させる. - 3 3 の書かれたボールを食べる.ロボット 3 3 を座標 2 2 から座標 1 1 へ移動させる. ロボット 2 2 が破壊される. - 1 1 の書かれたボールを食べる.ロボット 1 1 はすでに破壊されているので,何もしない.