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

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


Timp maxim de executie/test:
0.2 secunde
Memorie totala disponibila/stiva:
15 MB/1 MB

Una dintre cele mai importante functii din colonia de furnici este cea de ofiter de circulatie. Motivul este ca in musuroiul de furnici exista un tunel foarte ingust, astfel incat prin tunel nu pot sa treaca doua furnici una pe langa alta. Din fericire, in tunel exista niste locuri speciale, unde furnicile pot sta si pot astepta pana trec alte furnici. Furnicile pot trece una pe langa alta fara nici o problema la capetele tunelului.

Ofiterul de circulatie cunoaste lungimea tunelului, precum si pozitiile locurilor speciale, in care furnicile pot stationa. In fiecare dimineata ofiterul de serviciu primeste o lista cu toate sosirile in tunel. Misiunea sa este de a organiza traficul astfel incat toate furnicile sa poata traversa tunelul. Bineinteles ca acest lucru poate fi realizat in multe moduri, mai rapid sau mai lent. Deoarece atunci cand ultima furnica va iesi din tunel, ofiterul de serviciu isi poate incheia programul, interesul sau este de a organiza traficul astfel incat acest lucru sa se intample cat mai repede.

Orice furnica se deplaseaza cu 1cm/s. In locurile speciale pot astepta oricate furnici, iar dimensiunile unui astfel de loc pot fi neglijate (poate fi considerat punctiform).

Cerinta

Scrieti un program care sa determine timpul minim necesar pentru ca toate furnicile sa traverseze tunelul.

Date de intrare

Fisierul de intrare furnici.in contine pe prima linie doua numere naturale D si U, separate printr-un spatiu; D reprezinta lungimea tunelului exprimata in cm, iar U reprezinta numarul de locuri speciale din tunel. Fiecare dintre urmatoarele U linii contine pozitia unui loc special din tunel; pozitia este precizata prin distanta fata de capatul din stanga al tunelului (exprimata in cm); pozitiile sunt date in ordine de la stanga la dreapta. Pe urmatoarea linie se afla un numar natural L, care reprezinta numarul de furnici care intra prin capatul din stanga al tunelului. Fiecare dintre urmatoarele L linii contine timpul de sosire a unei furnici la capatul din stanga al tunelului. Pe urmatoarea linie se afla un numar natural R, care reprezinta numarul de furnici care intra prin capatul din dreapta al tunelului. Fiecare dintre urmatoarele R linii contine timpul de sosire a unei furnici la capatul din dreapta al tunelului.

Date de iesire

Fisierul de iesire furnici.out contine o singura linie pe care se afla timpul minim necesar pentru ca toate furnicile sa traverseze tunelul, exprimat in secunde.

Restrictii

  • 1 <= D <= 1000000
  • 1 <= U, L, R <= 100000 (o suta de mii)
  • D > U
  • Timpii de sosire sunt exprimati in secunde si sunt numere naturale <= 2000000 (doua milioane)

Exemple

furnici.in furnici.out furnici.in furnici.out furnici.in furnici.out
5 1
2
1
3
1
2
8 10 1
3
1
0
1
2
16 10 2
4
6
2
0
4
1
0
14

prof. Serban Marinel
Liceul de Informatica "Gr. C. Moisil" Iasi
Contact: marinel_serban at yahoo.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2003: newcomp, rima, algebra, turn1, aparitii, carti1, program1, tgraf, ceas1, spioni, kgb, tabara1, romane, stop, hanoi, lift, pic, sms, fibo, bac, parc, circular, logn, lex, joc7, cuburi1, sant, mobile, pattern, oras, produs, mutare, viteza, concurs2, homeless, subsir
De acelaşi autor: premii, finala, fractii, trei, manevre, nrcuv, an, vopsea, opmat, tramvai, bipal, kpal, sarpe, replace, factori, barca, perechi, grupe, cod, reactii, factura, decript, trenuri, holo, cifre, firma, tribile, mesaj, tricouri, pajura, monede, programs, fry, repeat, red, pavaj, bacan, nrbinar, invest, cutie2, loc, depou, nr3, zid, felinare, sir3, sqr, carte, labirint, stea, count, evaluare, super, schimb, zaruri, vectori, spirala, desen1, rima, ceas1, romane, sms, bac, excursia, joc7, munte1, cezar, marcare, excursie1, culmi, sume1, schi, nr4, fractie, cod3, medii, tren3, top, sant1, imagine, ocr, perfect, pluton, reforma, alee, ceas2, paritate, borcane, aranjare, comoara1, culmi1, reactivi, submult, sablon1, sir8, sume2, dansatori, smith, tom, matriosca, asociativ, control1, calorii, immortal, concat, mat, cubinvers, mine, divizori, cheie, stelar, joct, minmax, cladire, adunscad, razboi, ore, oras1, sumprod, prisme, operatii1, lgdrum, unupatru, chibrituri, extraprime, prieten, rebus1, grindina, opmult, betisoare, antitero, clase, pagini, ornament, ordine, spioni1
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, kafka, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, xor1, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, punctfix, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, numar5, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, tetris3, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, colina, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
surse trimise | ajutor