Господар на синџирите
Тодор поседува N синџири, кои што се состојат од одреден број на алки. Секоја алка е поврзана со најмногу 2 соседни алки (од лево и од десно).
Секоја алка може да се отвора и затвора, со цел да може да се раздвојуваат и/или спојуваат синџирите.
Тодор сака да ги сврзе сите синџири во еден единствен голем синџир кој ќе ги содржи сите алки. Притоа, сака тоа да го изведе сo отворање и затворање на што е можно помалку алки. На пример, на сликата има три синџири со по една алка. Може да ја земеме едната алка (едниот синџир), да ја отвориме и со неа да ги споиме другите два. Ќе ни биде потребно само едно отворање и затворање на алка.
На Тодор му е именден, па помогнете му. За даден број на синџири и должината на секој од нив (број на алки во нив), најдете го минималниот број на алки кои треба да се отворат и затворат за да се создаде еден голем синџир од сите алки.
Влез
Во првиот ред од влезот има позитивен цел број N (2 ≤ N ≤ 500 000), бројот на синџири.
Во следните N редови има по еден цел број Li (1 ≤ Li ≤ 1 000 000), должината на секој од синџирите.
Излез
Во единствениот ред отпечатете го бараниот број - минималниот број на алки.
Ограничувања
Временско ограничување: 200 milliseconds
Мемориско ограничување: 64 megabytes
Примери
влез 2 3 3 | излез 1 |
влез 3 1 1 1 | излез 1 |
влез 5 4 3 5 7 9 | излез 3 |
Објаснување на првиот пример:
Тодор може да ја отвори последната алка од првиот синџир, да ја поврзе со првата алка од вториот синџир и да ја затвори.
Објаснување на третиот пример:
Најдобро е Тодор комплетно да го растури вториот синџир со отворање на сите три алки и нив да ги искористи за поврзување на останатите синџири (на пример: првиот со третиот, третиот со четвртиот и четвртиот со петтиот).