Fişierul intrare/ieşire:bancomat.in, bancomat.outSursăInfoarena Monthly 2014, Runda 3
AutorAndrei Cristian LambruAdăugată demaritimCristian Lambru maritim
Timp execuţie pe test0.15 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Bancomat

Fie un bancomat ce contine 6 tipuri de bancnote, fiecare tip cu o valoare diferita. Cele 6 valori posibile sunt: 1 leu, 5 lei, 10 lei, 50 de lei, 100 de lei si 500 de lei. Pentru fiecare tip exista un numar finit de bancnote continute in bancomat.

Cerinta

In decursul unei zile vin N clienti sa extraga bani din bancomat. Stiind pentru fiecare client suma de bani pe care vrea sa o extraga si numarul de bancnote din fiecare tip ce exista in bancomat, se cere sa se spuna daca se poate oferi fiecarui client suma de bani pe care o doreste.

Date de intrare

Pe prima linie din fisierul de intrare bancomat.in se afla o singura valoare T ce semnifica numarul de zile pentru care trebuie sa raspundeti.
In continuare se afla datele de intrare pentru fiecare zi in parte. Pentru fiecare zi se vor citi 3 linii:

  • Pe prima linie vor fi 6 valori separate printr-un spatiu, semnificand numarul de bancnote din fiecare tip in ordinea : 1, 5, 10, 50, 100, 500
  • Pe a doua linie se va afla o singura valoare N ce va semnifica numarul de clienti din ziua respectiva
  • Pe a treia linie se vor afla N valori semnificand sumele de bani pentru fiecare client, in ordinea in care acestia vor veni la bancomat in ziua respectiva pentru a face o extragere

Date de ieşire

În fişierul de ieşire bancomat.out se vor afisa T linii. Pe fiecare din cele T linii se va afla cuvantul "YES" (fara ghilimele) daca se pot oferi tuturor clientilor sumele de bani dorite de acestia in ziua respectiva, sau "NO" (tot fara ghilimele) daca nu se poate. Cele T linii corespund zilelor din fisierul de intrare in ordinea in care s-au citit.

Restricţii

  • 1T50
  • 1N5000
  • 0Tip, Suma230
    • Tip semnifica valoarea pentru oricare din cele 6 tipuri posibile de bancnote
    • Suma semnifica suma de bani pentru oricare din cei N clienti care fac extrageri din bancomat
  • Atentie!!! Bancomatul trebuie sa ofere suma exacta fiecarui client. Cu alte cuvinte, el nu poate oferi mai multi bani unui client pentru a acoperi suma dorita de acesta.

Exemplu

bancomat.inbancomat.out
3
4 3 2 0 0 0
2
17 15
1 3 10 0 0 0
2
6 3
99 99 99 99 99 0
4
233 213 233 244
YES
NO
YES

Explicaţie

Sunt 3 zile in care se foloseste bancomatul.

  • In prima zi bancomatul contine 4 bancnote de 1 leu, 3 bancnote de 5 lei si 2 bancnote de 10 lei. Primul client care vine la bancomat doreste suma de 17 lei si primeste doua bancnote de 1 leu, o bancnota de 5 lei si una de 10 lei. Al doilea client doreste suma de 15 lei si primeste o bancnota de 5 lei si una de 10 lei.
  • A doua zi vine primul client la bancomat si primeste o bancnota de 1 leu si o bancnota de 5 lei pentru a acoperi suma de 6 lei pe care o doreste. Al doilea client doreste sa extraga 3 lei, dar bancomatul nu mai contine nicio bancnota de 1 leu, in concluzie el nu poate oferi tuturor clientilor suma dorita.
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content