ArtificialLake
Time Limit: 3000MS |
Memory Limit: 65536K |
Total Submissions: 2119 |
Accepted: 710 |
Description
The oppressively hot summer days have raised the cows' clamoringto its highest level. Farmer John has finally decided to build an artificiallake. For his engineering studies, he is modeling the lake as a two-dimensionallandscape consisting of a contiguous sequence of N soon-to-be-submerged levels (1 ≤ N ≤ 100,000) conveniently numbered 1..N from left to right.
Each level i is described by two integers, itswidth Wi (1 ≤ Wi ≤ 1,000) and height (like a relativeelevation) Hi (1 ≤ Hi ≤ 1,000,000). The heights of FJ'slevels are unique. An infinitely tall barrier encloses the lake's model on theleft and right. One example lake profile is shown below.
* * :
* * :
* * 8
* *** * 7
* *** * 6
* *** * 5
* ********** 4 <- height
* ********** 3
*************** 2
*************** 1
Level | 1 |2| 3 |
In FJ's model, he starts filling his lake at sunrise by flowingwater into the bottom of the lowest elevation at a rate of 1 square unit ofwater per minute. The water falls directly downward until it hits something,and then it flows and spreads as room-temperature water always does. As in allgood models, assume that falling and flowing happen instantly. Determine thetime at which each elevation's becomes submerged by a single unit of water.
WATER WATER OVERFLOWS
| |
* | * * | * * *
* V * * V * * *
* * * .... * *~~~~~~~~~~~~*
* ** * *~~~~** : * *~~~~**~~~~~~*
* ** * *~~~~** : * *~~~~**~~~~~~*
* ** * *~~~~**~~~~~~* *~~~~**~~~~~~*
* ********* *~~~~********* *~~~~*********
*~~~~********* *~~~~********* *~~~~*********
************** ************** **************
************** ************** **************
After 4 mins After 26 mins After 50 mins
Lvl 1 submerged Lvl 3 submerged Lvl 2 submerged
Warning: The answer will not always fit in 32 bits.
Input
* Line 1: A single integer: N
* Lines 2..N+1: Line i+1describes level i with two space-separated integers: Wi and Hi
Output
* Lines 1..N: Line i contains a single integer that is thenumber of minutes that since sunrise when level #i is covered by water of height 1.
SampleInput
3
4 2
2 7
6 4
SampleOutput
4
50
26
Source
算法分析:
题意:向N个连续且高度不同的平台灌水,平台各有宽度,且高度各不相同。一开始,先向高度最低的平台灌水,直到灌满溢出,流向其他的平台,直至所有平台都被覆盖。已知每分钟注入高度为1且宽度为1的水,问每个平台恰好被高度为1的水覆盖的时间。
分析:
第一步:记录每个平台的高度宽度(h,w)和左右平台(l,r),先找到最低的平台,然后开始灌水。
第二步:灌满最低的平台后,水溢出,相当于该平台消失,更新左右平台,寻找下一流向哪个平台。
注意用long long 。
代码实现: