QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 2048 MB Total points: 100

#2338. 靚橋

Statistics

係乜嘢將我哋所有人連繫埋一齊?好多時就係橋。自古以來,人類一直為道路、火車同行人起橋,亦會起高架水道嚟運水。呢個就係人類唔肯向麻煩地形妥協嘅方法。

Arch Bridges Construction(ABC)公司專門做嘅——你估啱喇——就係起拱橋。呢種古典橋樑由橋底地面向上伸嘅橋墩支撐。橋墩之間嘅拱會將橋嘅重量分散到相鄰嘅橋墩上。

problem_2338_af5f9761b646daa916cba4f04e2f05b7.png

羅馬式拱橋嘅例子。來源:Wikimedia Commons

ABC 起嘅橋,橋墩之間嘅距離通常唔規則。為咗好睇,ABC 嘅橋一定會用半圓形拱,好似圖 B.1 噉。不過,橋拱雖然可以掂到地面,但唔可以伸入地下。噉就令某啲橋墩擺法唔可行。

problem_2338_c39ea985324a74f3662c1f7d1d79ab66.png

(a) 相鄰橋墩距離係 $d$,用半徑 $r=d/2$ 嘅半圓形拱連住。

(b) 唔可行嘅橋墩擺法(拱唔可以伸入地下)。

(c) 對應例子輸入 1 嘅橋。

圖 B.1:橋嘅例子。

畀定地面輪廓同想要嘅橋面高度 $h$,通常有好多方法起一座拱橋。我哋用分段線性函數表示地面輪廓,由 $n$ 個關鍵點 $(x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)$ 描述;一個點嘅 $x$ 座標係沿住條橋嘅位置,$y$ 座標就係呢個位置地面高過海平面幾多。第一個同最後一個橋墩一定要分別起喺第一個同最後一個關鍵點,其他中間橋墩亦只可以起喺呢啲關鍵點。條橋嘅成本等於橋墩成本(同橋墩高度成正比)加上拱嘅成本(同用料量成正比)。所以,一座有 $k$ 個橋墩、高度分別係 $h_1,\ldots,h_k$、相鄰橋墩水平距離分別係 $d_1,\ldots,d_{k-1}$ 嘅橋,總成本就係

$$\alpha\cdot\sum_{i=1}^{k}h_i+\beta\cdot\sum_{i=1}^{k-1}d_i^2$$

當中 $\alpha$ 同 $\beta$ 係畀定嘅常數。ABC 想用最低成本起每座橋。

輸入格式

輸入第一行有四個整數 $n,h,\alpha,\beta$,其中 $n$($2\le n\le 10^4$)係描述地面輪廓嘅點數,$h$($1\le h\le 10^5$)係想要嘅橋面海拔,而 $\alpha,\beta$($1\le\alpha,\beta\le 10^4$)就係頭先講嘅成本係數。跟住有 $n$ 行,第 $i$ 行有兩個整數 $x_i,y_i$($0\le x_1<x_2<\ldots<x_n\le 10^5$,而且 $0\le y_i<h$),描述地面輪廓。

輸出格式

輸出喺海拔 $h$、由水平位置 $x_1$ 到 $x_n$ 起橋嘅最低成本。如果冇辦法起到任何一座咁嘅橋,就輸出 impossible。

例子

輸入格式 1

5 60 18 2
0 0
20 20
30 10
50 30
70 20

輸出格式 1

6460

輸入格式 2

4 10 1 1
0 0
1 9
9 9
10 0

輸出格式 2

impossible

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.