QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 256 MB 總分: 100

#1215. 防壁

统计

你買咗 JOI 公司推出嘅一款電視遊戲。呢款遊戲做得相當唔錯,你每日都玩得幾開心。

有一日,你遇到一個玩家之間叫做「雷射」嘅關卡。呢個關卡似乎極之困難,就算係高手,都只有好低機會過關。你挑戰咗好多次之後,發現只要作出極快嘅判斷,就有機會過關,所以諗住寫個程式嚟應付。

雷射關卡嘅場地入面擺咗 $N$ 道防壁。場地係長方形,劃分成 $1\times1$ 嘅正方形格仔。每個格仔用兩個非負整數 $x,y$ 表示,記作 $(x,y)$。$(0,0)$ 係左下角嘅格仔,而 $(x,y)$ 就係由 $(0,0)$ 向右行 $x$ 格、向上行 $y$ 格到達嘅格仔。

關卡開始之後,敵人會出現並發動攻擊。總共有 $M$ 次攻擊,依次進行。第 $j$ 次攻擊時,敵人會由格仔 $(P_j,N+1)$ 朝住格仔 $(P_j,0)$ 直線發射雷射。

每道防壁都放喺幾個 $y$ 座標相同、連續嘅格仔上面。防壁 $i$ ($1 \le i \le N$) 係左右闊度為 $B_i-A_i+1$、上下高度為 $1$ 嘅長方形。關卡開始時,佢佔據由格仔 $(A_i,i)$ 到格仔 $(B_i,i)$ 嘅位置。喺敵人第一次攻擊之前,同埋每兩次攻擊之間,你都可以任意多次將防壁向左或者向右移動。每次移動可以將一道防壁向右移一格,或者向左移一格。

雷射撞到防壁時,威力就會減弱。你想移動防壁,令雷射撞到所有防壁,從而將雷射嘅威力降到最低。

喺呢個關卡入面,你想令防壁嘅移動次數盡可能少。

任務

畀定關卡開始時每道防壁嘅位置,同埋敵人每次攻擊嘅位置。當你移動防壁,令每道雷射都撞到所有防壁時,求出每道防壁最少要移動幾多次。

輸入格式

由標準輸入讀取以下資料。

  • 第一行有兩個用空格分隔嘅整數 $N,M$,表示關卡入面有 $N$ 道防壁,敵人會攻擊 $M$ 次。
  • 跟住 $N$ 行之中,第 $i$ 行 ($1 \le i \le N$) 有兩個用空格分隔嘅整數 $A_i,B_i$,表示關卡開始時,防壁 $i$ 佔據由格仔 $(A_i,i)$ 到格仔 $(B_i,i)$ 嘅位置。
  • 跟住 $M$ 行之中,第 $j$ 行 ($1 \le j \le M$) 有一個整數 $P_j$,表示第 $j$ 次攻擊時,敵人會由格仔 $(P_j,N+1)$ 朝住格仔 $(P_j,0)$ 直線發射雷射。

輸出格式

向標準輸出寫出 $N$ 行。第 $i$ 行 ($1 \le i \le N$) 輸出防壁 $i$ 嘅最少移動次數。

資料範圍

所有輸入資料都符合以下條件。

  • $1 \le N \le 200\,000$。
  • $1 \le M \le 200\,000$。
  • $0 \le A_i \le B_i \le 1\,000\,000\,000$ ($1 \le i \le N$)。
  • $0 \le P_j \le 1\,000\,000\,000$ ($1 \le j \le M$)。

子任務

子任務 1 [10 分]

  • 符合 $N=1$。

子任務 2 [45 分]

  • 符合 $A_i=0$ ($1 \le i \le N$)。

子任務 3 [45 分]

冇額外限制。

樣例

輸入格式 1

4 4
0 3
4 4
2 7
8 11
6
4
3
8

輸出格式 1

5
10
1
7

說明

對於呢組輸入,其中一種令防壁移動次數最少嘅方法如下:

  • 第一次攻擊之前,將防壁 1 向右移 3 次、防壁 2 向右移 2 次、防壁 3 保持唔郁、防壁 4 向左移 2 次。
  • 第二次攻擊之前,防壁 1 保持唔郁、防壁 2 向左移 2 次、防壁 3 保持唔郁、防壁 4 向左移 2 次。
  • 第三次攻擊之前,防壁 1 保持唔郁、防壁 2 向左移 1 次、防壁 3 保持唔郁、防壁 4 向左移 1 次。
  • 第四次攻擊之前,將防壁 1 向右移 2 次、防壁 2 向右移 5 次、防壁 3 向右移 1 次、防壁 4 向右移 2 次。

用呢個方法,防壁 1 總共移動 5 次、防壁 2 移動 10 次、防壁 3 移動 1 次、防壁 4 移動 7 次。

problem_1215_3562d988d5d7963ef25fa16b69bb8875.png

由左至右、由上至下:關卡開始時、第一次攻擊、第二次攻擊、第三次攻擊、第四次攻擊。

輸入格式 2

7 11
12 39
22 23
5 38
6 47
10 43
0 50
18 46
38
19
15
1
12
29
29
0
6
40
6

輸出格式 2

34
178
13
6
18
0
36

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.