Flyttkartonger

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

Du har just hjälpt en kompis att flytta, men tyvärr har du fastnat i fel ände av en smal korridor full med flyttkartonger. Korridoren består av NN staplar av flyttkartonger, där stapel nummer ii innehåller a_ia\_i kartonger. Alla kartonger är lika stora.

Det enda sättet att ta sig ut är att gå ovanpå staplarna från stapel 11 till stapel NN. Om man befinner sig på en stapel kan man gå till en närliggande stapel, men bara om den inte är högre än den man står på. Om stapeln man står är minst två kartonger högre än en närliggande stapel kan man dessutom knuffa ner den översta kartongen från stapeln man står på till den närliggande stapeln. Detta kan upprepas hur många gånger som helst. 

Du befinner dig just nu på stapel 11. Tyvärr kanske det är omöjligt för dig att komma till stapel NN. Men som tur är får du lägga till valfritt antal extra kartonger till stapel 11 innan du börjar gå. Skriv ett program som beräknar hur många extra kartonger du behöver lägga till för att kunna ta dig till stapel NN.

Bilden visar exempel 1. De mörkgrå kartongerna är extrakartonger. Strategin är alltså att knuffa ner den översta extrakartongen till stapel 2. Därefter kan man gå raka vägen till stapel 4. Det hade inte hade fungerat med färre än 3 extrakartonger.

입력

På första raden står ett heltal NN, antalet staplar. På andra raden står NN heltal a_ia\_i, antalet kartonger i varje stapel.

출력

Programmet ska skriva ut ett heltal: det minsta antalet extra flyttkartonger som behöver läggas till.

제한

  • 3N203\le N\le 20
  • 1a_i30001 \le a\_i \le 3000