博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<cf>Walking in the Rain
阅读量:5796 次
发布时间:2019-06-18

本文共 3402 字,大约阅读时间需要 11 分钟。

B. Walking in the Rain
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

In Berland the opposition is going to arrange mass walking on the boulevard. The boulevard consists ofn tiles that are lain in a row and are numbered from 1 to n from right to left. The opposition should start walking on the tile number 1 and the finish on the tile number n. During the walk it is allowed to move from right to left between adjacent tiles in a row, and jump over a tile. More formally, if you are standing on the tile number i (i < n - 1), you can reach the tiles number i + 1 or the tile number i + 2 from it (if you stand on the tile number n - 1, you can only reach tile number n). We can assume that all the opposition movements occur instantaneously.

In order to thwart an opposition rally, the Berland bloody regime organized the rain. The tiles on the boulevard are of poor quality and they are rapidly destroyed in the rain. We know that the i-th tile is destroyed after ai days of rain (on day ai tile isn't destroyed yet, and on day ai + 1 it is already destroyed). Of course, no one is allowed to walk on the destroyed tiles! So the walk of the opposition is considered thwarted, if either the tile number 1 is broken, or the tile number n is broken, or it is impossible to reach the tile number n from the tile number 1 if we can walk on undestroyed tiles.

The opposition wants to gather more supporters for their walk. Therefore, the more time they have to pack, the better. Help the opposition to calculate how much time they still have and tell us for how many days the walk from the tile number 1 to the tile number n will be possible.

Input

The first line contains integer n (1 ≤ n ≤ 103) — the boulevard's length in tiles.

The second line contains n space-separated integers ai — the number of days after which the i-th tile gets destroyed (1 ≤ ai ≤ 103).

Output

Print a single number — the sought number of days.

Sample test(s)
input
410 3 5 10
output
5
input
510 2 8 3 5
output
5
Note

In the first sample the second tile gets destroyed after day three, and the only path left is 1 → 3 → 4. After day five there is a two-tile gap between the first and the last tile, you can't jump over it.

In the second sample path 1 → 3 → 5 is available up to day five, inclusive. On day six the last tile is destroyed and the walk is thwarted.

AC Code:

#include 
#include
using namespace std;struct Days_Destroyed{ int i;//tile的序号 int day;//要使 i-th tile 被毁的日数}a[1001];bool dest[1001]; //记录是否被毁,默认为假,即木有被毁int cmp(const void *a,const void *b){ struct Days_Destroyed* aa=(Days_Destroyed*)a; struct Days_Destroyed* bb=(Days_Destroyed*)b; return aa->day-bb->day;}int main(){ int n,MaxDays,j; while(cin>>n) { MaxDays=1; for(j=1;j<=n;j++) { cin>>a[j].day; a[j].i=j; dest[j]=false; } qsort(a+1,n,sizeof(a[0]),cmp);//快速排序 for(j=1;j<=n;j++) { //如果是第一或最后一个tile被毁,又或相邻两个tile之一被毁,当前tile就不能再被毁 if(a[j].i==1 || a[j].i==n || dest[a[j].i-1] || dest[a[j].i+1]) { MaxDays=a[j].day;//注意不能直接break,要先执行这一步 break; } else { MaxDays=a[j].day; dest[a[j].i]=true;//标记为已被破坏 } } cout<
<

转载地址:http://nfifx.baihongyu.com/

你可能感兴趣的文章
Linux学习笔记之三
查看>>
Intermediate Task List
查看>>
在关闭窗体时弹出确认对话框
查看>>
java修饰符——transient
查看>>
C_使用clock()函数获取程序执行时间
查看>>
在 Node.js 中引入模块:你所需要知道的一切都在这里
查看>>
CentOS 6.5 64位 安装Nginx, MySQL, PHP
查看>>
Bootstrap_遮罩提示
查看>>
2463: [中山市选2009]谁能赢呢?
查看>>
3631: [JLOI2014]松鼠的新家
查看>>
微信公众号
查看>>
Android_内部文件读取
查看>>
QTP的那些事---webtable的一些重要使用集合精解
查看>>
【从传统方法到深度学习】图像分类
查看>>
POJ1061 青蛙的约会(扩展欧几里得)题解
查看>>
6、Android---运用手机多媒体(待完成)
查看>>
原生js怎么为动态生成的标签添加各种事件
查看>>
mysql安装,以及从csv插入数据
查看>>
Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类 (转)...
查看>>
跪求: 怎么破解XP系统开机密码?????
查看>>