.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » porumb

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
 .campion
porumb


Timp maxim de execuţie/test:
0.1 secunde
Memorie totala disponibilă/stivă:
2 MB/1 MB

După cataclismul din 2012 supravieţuitorii au debarcat pe continentul New Africa unde s-au ciocnit de lanurile de porumb răpitor (o mutaţie a porumbului, apărută în urma furtunii solare, care se hrăneşte cu organisme vii şi se poate deplasa!). Memoria colectivă impune ca plantele să se mişte în linii drepte, la distanţe fixe una de alta (cum erau cultivate pe vremuri). În timpul mişcării lanul distruge tot ce îi stă în cale. Din fericire, porumbul este activ doar noaptea, ziua rămânând nemişcat. Astfel, coloniştii pot să distrugă plantele în timpul zilei, folosind aruncătoarele de foc (după ardere porumbul răpitor se transforma imediat în popcorn). Deoarece resursele coloniştilor sunt limitate, iar numărul lanurilor de porumb răpitor este mare, pentru arderea fiecărui lan este repartizat un singur distrugător. Imediat după răsăritul soarelui distrugătorul este deplasat cu un elicopter şi lăsat în faţa unui rând din lanul de porumb.
In fiecare secundă, distrugătorul poate efectua una dintre următoarele trei acţiuni:
  • să se deplaseze cu un pas spre dreapta (la rândul următor de porumb);
  • să se deplaseze cu un pas spre stânga (la rândul precedent de porumb);
  • să ardă cea mai apropiată plantă aflată pe rândul care este în faţa sa.

Realizarea oricăreia din acţiunile date necesită exact o secundă.
Deoarece zilele în New Africa sunt foarte scurte, numărul de acţiuni pentru a arde lanul trebuie să fie cât mai mic posibil, altfel apare pericolul ca odată cu venirea nopţii distrugătorul să fie consumat de porumb.

Cerinţă

Scrieţi un program care va determina timpul minim necesar pentru distrugerea unui lan de porumb dat.

Date de intrare

Fişierul de intrare porumb.in conţine pe prima linie două numere întregi n m, separate prin spaţiu, reprezentând numărul de linii de porumb şi respectiv numărul rândului în faţa căreia se află iniţial distrugătorul. Rândurile de porumb sunt numerotate de la stânga la dreapta de la 1 la n. Cea de a doua linie conţine n numere întregi, separate prin câte un spaţiu, a1 a2 ... an, unde ai reprezintă numărul de plante aflate pe rândul i.

Date de ieşire

Fişierul de ieşire porumb.out va conţine o singură linie pe care va fi scris un număr natural reprezentând timpul minim necesar pentru distrugerea lanului de porumb descris în fişierul de intrare, exprimat în secunde.

Restricţii

  • 0 < m <= n <= 100
  • 0 < ai <= 100, pentru 1 <= i <= n.

Exemple

porumb.in porumb.out Explicaţie
4 4
1 2 2 1
9


Distrugătorul arde planta din linia din faţa sa (1), se mişcă spre stânga (1), arde prima plantă din linie (1), arde a doua plantă din linie (1), se mişcă spre stânga (1), arde prima plantă din linie (1), arde a doua plantă din linie (1), se mişcă spre stânga (1), arde planta din linie (1). Sfârşit. Total – 9 secunde.


prof. Sergiu Corlat
Liceul Orizont, Chisinau
scorlat@gmail.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2010: greiere, divizori, kdist, pestera, partitie, sokoban, pitag, cheie, conferinta, chei, stelar, atelier, secv9, ny, radical, arbgraf, select, divk, bileprime, nx, reuniune, cazare, proiect, taler, atletism, echipa, ghinion, oldest, war, aliniere, sumb, cavaleri, joct, fluviu, camera616, aritm, stele, covor, subm, mess, secvnumber, cladire, ssmax, parcela, pion, subs, universitate, el, mahjong, rotund, sirmax, bdotcom, pack
De acelaşi autor: nice, fib, atac, mere, ff, patrate, astre, baby, zapada, pendul, unu, dragon, placi, druid, bete, comori, ploaia, lot, arcas, factk, robot1, kalah, cetati, palc, expo, universitate, safeu, capra, zuma, gsm, megascoala
Despre structura repetitiva: cifre1, super, schimb, jeton, descfib, taxe, romane, mobile, cuburi3, tzigla, morse, powerpuff, multimi, ucif, tabel, ocr, numere7, cifre2, piramida, vraji, reforma, cartonas, cabina, case, desen2, exponent, cifre3, concurs3, joc13, reactivi, vanatoare, submult, paranteze, tort, copaci1, ogorul, puncte3, efort, muzeu, smith, biliard, palc, prod3, fazanr, cadouri, bursa, meteo, prodmax, zar, tren4, lego, maraton1, cluburi, domino1, jump, alo, cifra1, case1, brazi, greiere, divizori, pitag, secv9, divk, rachete, pin, sumacifre, aritm, psp, triplu, triunghi3, cmmdcsecv, ssmax, ape, furnici1, domino2, acoperire1, ore, pegals, b2k, sumdivprod, subsecvmax, dale, bancomat, sume4, alice, porumb1, albine2, culegere, stele1, medalion, cifreco, meteo1, unupatru, xyz, vistiernic, chibrituri, bete1, greieri, interviu, prieten, prize, conturi, numere12, martisoare, piramide, pagini, punctul, tablita, pavare1, ordine, covor1, speciale, echer, numere13
surse trimise | ajutor