Uite cele 2 probleme pe care le-am avut.
1. TRAFIC
Intr-un oras sunt
n firme de curierat. Fiecare firma are un program propri de lucru. Pentru fiecare firma se stie ora la care vin angajatii si ora la care pleaca angajatii de la firma. Deoarece in oras apar aglomeratii in trafic intre orele de inceput si de terminare a programului de lucru, politia rutiera doreste sa suplimenteze numarul agentilor din trafic pentru fludizarea circulatiei. Politia rutiera dispune de un numar destul de mic de agenti de circulatie si de aceea este nevoie sa estimeze care vor fi perioadele din zi in care sunt un numar de firme active.
Cerinta
Determinati perioadele cu aglomeratie maxima si numarul acestora.
Date de intrare
Fisierul de intrare
TRAFIC.IN contine pe prima linie numarul
n, iar pe urmatoarele
n linii perechi de numere naturale x1, x2 separate printr-un singur spatiu, reprezentand ora de inceput, respectiv ora de terminare a programului de lucru a fiecareia din cele
n firme.
Date de iesire
Fisierul de iesire
TRAFIC.OUT va contine un numar de linii cu cate doua valori separate printr-un singur spatiu, valori ce reprezinta ora la care incepe si respectiv ora la care se termina o perioada cu numar maxim de firme active. Perioadele sunt ordonate dupa ora de la inceput a fiecareia. Ultima linie a fisierului de iesire va contone numarul acestor perioade.
Restricti si precizari
- 2 <= n <= 100.000
- x1, x2 sunt numere naturale cu x <= x1 <= x2 <= 24
- O perioada de trafic estimat maxim este cea mai lunga posibila cu aceasta proprietate. De exemplu, daca [2,3] si [3,7] sunt perioade de trafic estimat maxim, atunci perioada care se va considera in rezultat va fi [2,7].
Exemplu
TRAFIC.IN
Code: Select all
10
5 10
3 8
2 9
12 17
13 18
14 21
20 24
19 24
1 2
2 3
TRAFIC.OUT
Explicatie.
Perioadele sunt [5,8], [14,17], [20,21] deci sunt 3 perioade de trafic estimat maxim,
Ele sunt ordonate dupa ora de inceput a fiecarei perioade (5, 14, 20).
Timp maxim de executie/test: 0,5 secunde
2. COLIER
Un colier este format din
n margele colorate. Culoarea fiecarei margele se cunoaste si este codificata printr-un numar natural. Colierul se rupe dupa margeaua cu numarul de ordine
k. Afisati din cate margele este formata,dupa rupere, cea mai lunga secventa de margele consecutive de aceeasi culoare.
Date de intrare
Fisierul de intrare
COLIER.IN contine pe prima linie, in ordine, cele 2 numere naturlae
n si
k, iar pe a doua linie
n valori naturale cu urmatoarea semnificatie: culoarea margelei cu numarul de ordine 1, culoarea margelei cu numarul de ordine 2,..., culoarea margelei cu numarul de ordine
n. Valorile de pe fiecare din cele doua linii sunt separate prin care un spatiu.
Date de iesire
Fisierul de iesire
COLIER.OUT contine solutia problemei formata din numarul maxim de margele alaturare care au aceeasi culoare dupa reperea colierului.
Restricti si precizari
- 1 <= n <= 1.000, n numar natural
- 1 <= k <= 1.000, k numar natural
- 1 <= k <= n
- x1, x2 sunt numere naturale cu x <= x1 <= x2 <= 24
- Codurile prin care sunt codificare culorile margelelor sunt numere naturale nenule cu valori mai mici sau egale cu 30.000
Exemple
-
- COLIER.IN
Code: Select all
16 4
5 3 3 3 3 3 3 4 4 4 2 2 2 2 1 5
- COLIER.OUT
-
- COLIER.IN
Code: Select all
10 7
20.000 20.000 1.500 1.500 1 2 3 20.000 20.000 20.000
- COLIER.OUT
Timp maxim de executie/test: 1 secunda
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Problema 1 nu mi-a iesit, am incercat mai multe metode.
Problema 2 mi-a iesit. Vrei rezolvarea sau incerci tu ? daca nu ai invatat fisiere text (fstream.h) fa cu cin si cout.