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

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


Timp maxim de executie/test:
0.5 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Intr-o gara se afla n vagoane, numerotate de la 1 la n. Fiecare vagon i (1 <= i <= n) are în spate un brat metalic pe care se afla x[i] gauri, iar în fata un brat metalic cu y[i] suruburi. Astfel orice vagon i contine:
- bratul din spate, care are prima gaura la distanta s[1] de marginea din stânga, a doua la distanta s[2] de prima gaura, a treia la distanta s[3] de a doua gaura, si asa mai departe.
- bratul din fata, care are primul surub la distanta f[1] de marginea din dreapta, al doilea la distanta f[2] de primul surub, al treilea la distanta f[3] de a doua gaura, si asa mai departe.
Gaurile si suruburile fiind de dimensiuni mult mai mici decât vagoanele le vom considera punctiforme.
Spre exemplu un vagon cu trei gauri în spate, aflate la distantele 3, 5, 7 si cu doua suruburi, aflate la distantele 4, 6 arata astfel:

Un vagon poate sa fie legat de un alt vagon numai daca toate suruburile bratului din fata ale primului vagon pot fi introduse în gaurile bratului din spatele celui de-al doilea vagon. Pot sa ramâna gauri nefolosite oriunde pe bratul din spatele unui vagon. Bratul din spatele oricarui vagon este suficient de lung ca sa poata intra orice surub de pe bratul din fata al oricarui vagon.
Toate vagoanele au aceeasi lungime, la fel si bratele metalice sunt de aceasi forma si lungime.
Seful de gara doreste sa formeze un tren cu cât mai multe vagoane dintre cele n de care dispune.

Cerinta

Sa se scrie un program care sa determine lungimea (numarul de vagoane) celui mai lung tren si câte astfel de trenuri se pot alcatui.

Date de intrare

Fisierul de intrare vagoane.in are pe prima linie numarul natural n, apoi pentru fiecare vagon (în ordinea vagoanelor 1, 2, …, n) se dau informatii pe cate doua linii. Prima linie contine numarul x[i], urmat de x[i] numere s[1], s[2], …, s[x[i]] pentru bratul din spate separate prin câte un spatiu, apoi pe linia urmatoare numarul y[i], urmat de y[i] numere f[1], f[2], …, f[y[i]] pentru bratul din fata separate prin câte un spatiu.

Date de iesire

Fisierul de iesire vagoane.out va contine pe prima linie numerele cerute separate între ele printr-un spatiu (în ordinea: lungimea trenului si apoi numarul de trenuri).

Restrictii

  • 0 < n < 51
  • Numarul de gauri, numarul de suruburi, distantele pentru gauri, distantele pentru suruburi sunt numere naturale nenule <21.

Exemplu

vagoane.in vagoane.out
4
3 1 2 3
2 2 3
2 6 7
1 8
3 1 1 3
1 3
2 2 1
2 3 3

4 8

prof. Doru Popescu Anastasiu
Colegiul Naţional "R. Greceanu" Slatina
dopopan@yahoo.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2007: perechi, teanc, index, light, copaci, teren, pizza, grupe, cod, ecran, drum, soldati, factura, palma, decript, lbd, aven, cs, h, trenuri, sort, spam, complex, parent, holo, tren2, gray, siruri, arce, pasi, cifre, mgo, firma, joc, cartonase, vikingi, anagrame, balbe, vecini, balaur, tribile, conflicte, criptmat, mesaj, maxim, magic3, desen, plimbare, cutie, patrate, party, robot, astre, trains, numere2, friends, tricouri, furtuna, net, baby, scaune, 3d, axa, bile2, vmem, pahare, termen, sablon, zapada, cuvinte, excursie, hd, pajura, pc, sir, cadere, pioni
De acelaşi autor: degrade, hora, noroc, test, tren, grad, palma, cs, h, scaune, tir, nrcuv2, piata, vocale, prop, poligon, text2, onu2, creioane, exp, donald, young, albine, turn, linie, tub, suma1, triunghi, cod1, pic, zuzu, pav, prieteni1, banda10, numar2, prime1, ziduri, puncte2, texan, part, ucif, numere7, mare, furnica, pavare, cifre3, domino, exp1, coduri, efort, prodmax, char, dartz, operatii, jucarii, cd1, codif, bileprime, echipa, covor, pavari, parcela, grad1, ec, stalpi2, grad2, testament, nrpomi, elicop, triburi1, showroom, cartite
Despre backtracking: acop, bipal, magic2, friends, tricouri, festival, numar, pento, ro, jobs, onu2, sir3, cai1, labirint, dans, ham, sudoku, caramele, linie, puncte, castel, excursia, joc7, pattern, avere, paianjen, medii, monkey, scara1, numere8, banda1, spirala1, cofetar, gradina, placa, smin, jucarii, immortal, concat, cubinvers, codif, izvor, avioane, jb, prisme, triburi1, genab, dineu, antitero, ornament, virgule
surse trimise | ajutor