You are on page 1of 2
Problema Lant tranzactii Ati fost angajat ca dezvoltator la o banca important si lucrati in vederea identificarii infractiunilor de spalare a banilor. S-a constatat ca exist situatii suspecte in care sume importante de bani sunt transmise in intervale scurte de timp de la utilizatorul A la utilizatorul B, prin intermediul altor utilizatori X, Y, Z ete. in consecinga, prima voastra sarcina este si analizafi listele de tranzactii bancare din ultimele luni in vederea stabilirii traseului banilor. Cerinti Scrieti un program care proceseaz o list de tranzactii bancare (caracterizate prin expeditor, destinatar $i suma tranzactionata) si stabileste cel mai lung lant de tranzactii si suma.care a ajuns de la primul expeditor la ultimul destinatar. Un lant de tranzactii reprezinta o list de tranzactii ordonate cronologic in care destinatarul din tranzactia ireprezinta expeditorul pentru tranzactia i~/. Prima voastea sarcind, fiind mai simpl&, presupune c& in lista de tranzactii de intrare: © tranzagiile vor apaarea in ordine cronologica; nu vor exista tranzactii cu care sa se poata forma lanturi ciclice; un nume A poate apirea maxim o dati cu rolul de expeditor i maxim o data cu rolul de destinatar. Date de intrare Se vor citi de la tastatura (fluxul sidin) urmatoarele date: ¢ de pe prima linie: un numar intreg N reprezentand numarul de tranzacti @ de pe urmatoarele N linii datele tranzactiilor: douf siruri de caractere Ne si Ng si un numair intreg §, separate prinb spatiu. reprezentind Ne ~ numele expeditorului, Ny ~ numele destinatarului si $ —suma tranzactionata. ile contindnd date de intrare sunt finalizate cu caracterul newline (tasta Enter). Toate Ii Date de iesire Programul va afiga pe ecran (sireamul standard de iesire): * pe prima linie: numele expeditorilor si destinatarilor din cel mai lung lan de tranzactii, separate prin spatiu; © peadoualinie: suma care a ajuns de la primul expeditor la ultimul de: tar din lant, ATENTIE la respectarea cerintei problemei: afisarea rezultatelor trebuie facut EXACT in modul in care a fost indicat! Cu alte cuvinte, pe stream-ul standard de iesire nu se va afiga nimic in plus fat de cerinfa problemei; ca urmare a evaluirii automate, orice caracter suplimentar afisat, sau o afgare diferiti de cea indicat, due la un rezultat eronat si prin urmare la obfinerea calificativului ,Respins”. Restrictii si preeizari 1, Numarul de tranzactii N este un numar intreg in intervalul (1; 1000]. 2. Numele expeditorului si destinatarului Ne si Ny sunt siruri de maxim 30 de caractere si contin numai litere mari [A; Z] zh este un numar integ cu valori in intervalul [0; 1000} Se garanteaza faptul cA nu vor exista 2 lanfuri cu aceeasi lungime. Atenfie: in funetie de limbajul de programare ales, fgierul ce confine codul trebuie s& aiba una din extensiile .c, .epp, java, sau .m, Editorul web nu va adiuga automat aceste si lipsa lor duce la imposibilitatea de compilare a programului! erul sursd trebuie numit de candidat sub forma: . unde nume este yee numele de familie al candidatului si extensia este cea aleasi conform punctului anterior. ‘Atentie la restrictile impuse de limbajul Java legate de numele clasei si numele fisieruluit Exemplu intrare Tesire 4 ciprian fon Andrei Gheorghe Cipr: Ion 10 10 Ion Andrei 15 lvasile Cornel 15 landrei Gheorghe 24 Explicatie Exista dowd lanturi de tranzactii: (i) Ciprian —Ion— Andrei—Gheorghe si (ii) Vasile— Cornel, cel mai lung fiind primal [Suma ce a ajuns de la Ciprian (primul expeditor) la Gheorghe (ult ul destinatar) este 10. Iintrare Tesire 3 George Costel Diana George Costel 14 8 costel Diana 8 Marcel Lucian 14 Explicatie Exist 2 lanturi de tranzactii: (i) George —Costel — Diana si (ii) Marcel— Lucian, cel mai lung fiind primul, [Suma ce a ajuns de la George (primul expeditor) la Diana (ultimul destinatar) este 8. Timp de lucru: 120 de minute

You might also like