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

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


Timp maxim de execuţie / test:
0.6s
Memorie totala disponibilă / stivă:
64MB / 1MB

Regele Gefghev s-a gândit să viziteze o ţară în care se întâmplă multe minuni, Ţara Minunilor. Această ţară este alcătuită din N oraşe, numerotate de la 1 la N. Între oraşele i şi i+1 (1≤i<N) există o stradă modernă pe care se poate circula doar de la oraşul i la oraşul i+1. Fiind un tip isteţ, Gefghev şi-a dat seama că el poate ajunge de la orice oraş i la un oraş j (j > i) mergând în total pe j-i străzi. Tronomir, angajat al direcţiei de întreţinere a drumurilor, a pus la cale un plan de construcţie a M noi străzi pentru a-i fi mai uşor lui Gefghev să călătorească. Străzile vor fi construite rând pe rând, în M zile consecutive, în ziua i fiind construită cea de-a i-a stradă. O stradă va fi construită de la oraşul a la oraşul b (1≤a<b–1<N) şi pe această stradă se va putea circula doar de la oraşul a către oraşul b. Fiind un tip preocupat de călătorii, Gefghev se gândeşte acum să afle, după fiecare stradă construită, între care oraşe poate ajunge acum mai repede decât putea înainte de construcţia străzii. Altfel spus, el vrea să ştie câte perechi de oraşe (x, y) (1≤x<y≤N) şi-au schimbat distanţa minimă dintre ele. Distanţa minimă dintre două oraşe x şi y este numărul minim de străzi care trebuie să fie parcurse pentru a ajunge din oraşul x în oraşul y.

Cerinţă

Scrieţi un program care determină pentru regele Gefghev, după fiecare stradă construită, numărul de perechi de oraşe (x, y) (1≤x<y≤N) pentru care distanţa minimă de la x la y s-a modificat după construirea străzii respective.

Date de intrare

Pe prima linie a fişierului de intrare minuni.in se află două numere întregi N şi M separate printr-un singur spaţiu, cu semnificaţia din enunţ. Pe următoarele M linii se află câte două numere naturale separate de un singur spaţiu, a şi b, cu semnificaţia că s-a construit o stradă de la oraşul a la oraşul b. Străzile sunt construite în ordinea din fişierul de intrare.

Date de ieşire

În fişierul de ieşire minuni.out se vor afla M numere naturale, câte un număr pe o linie. Pe linia i se va scrie numărul de perechi de oraşe (x, y) (1≤x<y≤N) pentru care distanţa minimă de la x la y s-a modificat, după construirea celei de a i-a străzi din fişierul de intrare.

Restricţii

1 ≤ N ≤ 1 000 000 000
1 ≤ M ≤ 100 000
• Toate oraşele între care s-au construit străzi noi sunt distincte.
• Nu există două străzi dintre cele nou construite, una (a, b) şi cealaltă ( c , d) astfel încât a ≤ c ≤ b ≤ d.
• Pentru 30% din teste M ≤ 1000.

Exemple

minuni.inminuni.outExplicaţii
8 3 2 4 1 5 6 8 10 4 6 Există 8 oraşe. Se vor construi 3 noi străzi. După construcţia străzii 2 4, se vor modifica distanţele dintre următoarele perechi de oraşe:
(1 4), (1 5), (1 6), (1 7), (1 8), (2 4), (2 5), (2 6), (2 7), (2 8).

autor: Stud. Adrian Airinei
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la ONI 2010: diff, kmax, stalpi1, submatrix1, dreptunghiuri, gaz, xp, petrecere, triunghi2, cmmmc, simetric1, cern, pesti, plaja, tango, arb1, v2d, xor2, cuiburi, telefon, teroristi
De acelaşi autor: connect3, retea, palind, auto, plopi, regat, kcons
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, conflicte, desen, robot, furtuna, net, cuvinte, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, arthur, kimberley, ro, sol, caravane, bete, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, atac2, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, trmv, graphgame, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
Despre arbori: bonuri, tgv, barfa, votare, arce, balaur, trains, bile2, vmem, plopi, caravane, mese, strict, tree, sub, kinder, firma1, albinuta, rlcs, masina, omizi, concurs1, latime, piloti, barca1, arbnr, sirag1, pikachu, arb, logn, maxq, arbore, bcast, mesaj1, traseu, asmax, salvare, tramvai1, omida, sediu, string, tv, izo, zoo, ratina, vitale, camion1, arbfind, cezar1, tcast, dep, curent, spp, frunze, sea2, culori, color, urgenta, nori, treegame, antipatie, scanduri, arb1, activ, regat, kdtree, autostrazi, carray, trenuri1, arbgraf, war, mess, secvnumber, subs, posta, radare, arbore1, hacker, lista, codarb, subsecvente, confuzie, transform, arbsum, copaci3, arbvalmax
surse trimise | ajutor