問題
複数台のトランポリンが、10m間隔で直線上に設置されています。
それぞれのトランポリンについて、水平方向に跳ぶことができる最大距離が決まっています。
左端のトランポリンから始めて、跳ぶことができる範囲にあるトランポリンに跳び移っていきます。
これを繰り返して、まずは右端のトランポリンまで行ってから、左端のトランポリンに戻りたいと思います。
この間、一度もトランポリンから降りずに往復することができるでしょうか。
課題
各トランポリンで水平方向に跳ぶことができる最大距離が与えられたとき、左端と右端の間を往復できるかを報告するプログラムを作成せよ。ただし、トランポリンは大きさのない点とみなす。
入力
入力は以下の形式で与えられる。
N d1 d2 : dN1行目にトランポリンの台数(2≦N≦3×105)が与えられる。
続くN行に、左からi番目のトランポリンで跳ぶことができる最大距離di(1≦di≦106)が、メートル単位の整数で与えられる。
出力
左端と右端の間を往復できるなら「yes」、できないなら「no」と1行に出力する。
入出力例
入力例1
4 20 5 10 1出力例1
no
入力例2
3 10 5 10出力例2
no
入力例3
4 20 30 1 20出力例3
yes