Livrare

Time limit: 0.1s Memory limit: 16MB Input: livrare.in Output: livrare.out

Două depozite ale unei hale țin mai multe pachete care trebuie livrate unor clienți. Pentru a face mai ușoară manevrarea pachetelor, angajații halei au așezat pachetele din fiecare depozit în ordine crescătoare, după greutate. Un curier trece pe la ambele depozite și colectează cât mai multe pachete pentru a reuși să le livreze în acea zi. Duba cu care urmează să transporte pachetele poate permite încărcarea a maxim GG kilograme. Curierul nu încarcă duba decât o singură dată pe zi, înainte de a pleca să livreze pachetele.

Cerințe

1. Considerând o echipă de NN curieri, fiecare cu propria dubă ii ce permite încărcarea a maxim GiG_i kilograme, să se afișeze numărul de zile în care se pot trimite toate pachetele din depozit către destinatarii lor, dacă ordinea în care curierii preiau pachete din depozite este aceea a șirului de greutăți admise per dubă GiG_i cunoscut. (50% din punctaj)

2. Într-o zi, un client sună să reclame că a primit alt pachet decât cel pe care îl aștepta. El comunică firmei de curierat greutatea pachetului pe care îl aștepta. În acest sens, echipa de NN curieri decide să caute în dubele lor pachetul clientului. În dube, pachetele sunt organizate după greutate, în mod crescător, așa cum au fost preluate de la depozit. Să se găsească în mod eficient duba PP în care se află pachetul clientului, indiferent de ziua în care se face reclamația. (50% din punctaj)

Date de intrare

Pe prima linie a fișierului de intrare livrare.in se găsește valoarea variabilei cc, număr natural reprezentând cerința care va fi rezolvată.

Pe a doua linie, numerele naturale AA și BB, reprezentând numerele de pachete din cele două depozite ale halei.

Pe următoarele două linii, șirurile de numere naturale reprezentând greutățile pachetelor din cele două depozite: p1,p2,,pAp_1, p_2, \dots, p_A, respectiv p1,p2,,pBp_1, p_2, \dots, p_B.

Pe a cincea linie, valoarea numărului natural NN, reprezentând numărul de curieri.

Pe a șasea linie, șirul de numere naturale reprezentând greutățile admise ale dubelor: G1,G2,,GNG_1, G_2, \dots, G_N.

Pentru cerința 2: Pe următoarea linie, greutatea GpG_p a pachetului clientului.

Date de ieșire

În cazul în care prima cerință este cea rezolvată, în fișierul de ieșire livrare.out se va afișa un singur număr natural ZZ, reprezentând numărul de zile necesare pentru livrarea tuturor pachetelor din hală.

În cazul în care a doua cerință este cea rezolvată, în fișierul de ieșire livrare.out se va afișa un singur număr natural PP, reprezentând a câta dubă este cea care conținea, de fapt, pachetul clientului.

Restricții

  • c{1,2}c \in \{1, 2\}, reprezentând cerința dată spre rezolvare;
  • 1A,B1001 \leq A, B \leq 100, cu AA și BB numere naturale, reprezentând numărul de pachete din fiecare depozit;
  • 1pi201 \leq p_i \leq 20, unde pip_i este un număr natural reprezentând greutatea unui pachet dintr-un depozit, cu umrătoarele proprietăți:
    1. p1p2pipAp_1 \leq p_2 \leq \dots \leq p_i \leq \dots \leq p_A, dacă pip_i \in depozitului AA, respectiv p1p2pipBp_1 \leq p_2 \leq \dots \leq p_i \leq \dots \leq p_B, dacă pip_i \in depozitului BB;
    2. Toate greutățile pip_i din întreaga hală sunt distincte;
  • 1N151 \leq N \leq 15, unde NN este un număr natural reprezentând numărul de curieri;
  • 1Gi1 0001 \leq G_i \leq 1 \ 000, unde GiG_i este un număr natural reprezentând greutatea maximă admisă pentru duba ii;
  • 1Gp201 \leq G_p \leq 20, unde GpG_p este un număr natural reprezentând greutatea pachetului clientului;
  • 1P151 \leq P \leq 15, unde PP este un număr natural reprezentând a câta dubă cuprinde pachetul clientului.

Precizări

  • Indiferent de zi, curierii ajung la hala în aceeași ordine, cea stabilită la citire;
  • Pentru cerința 1: Se garantează că livrarea se poate face și, implicit, că nu există situații în care unele pachete să fie mai grele decât greutatea maximă admisă a oricărei dube;
  • Pentru cerința 2: Nu se garantează că toate pachetele sunt distribuite în prima zi între curieri.

Exemplul 1

livrare.in

1
4 7
12 15 30 46
16 27 31 32 37 49 53
6
30 45 100 40 15 15 

livrare.out

3

Explicație

Dubele curierilor conțin în prima zi următoarele pachete descrise după valoarea pip_i:

  • Duba 1: 12,1512, 15
  • Duba 2: 16,2716, 27
  • Duba 3: 30,31,3230, 31, 32
  • Duba 4: 3737
  • Duba 5: goală
  • Duba 6: goală

În a doua zi:

  • Duba 1: goală
  • Duba 2: goală
  • Duba 3: 46,4946, 49
  • Duba 4: goală
  • Duba 5: goală
  • Duba 6: goală

În a treia zi:

  • Duba 1: goală
  • Duba 2: goală
  • Duba 3: 5353
  • Duba 4: goală
  • Duba 5: goală
  • Duba 6: goală

Exemplul 2

livrare.in

2
4 7
12 15 30 46
16 27 31 32 37 49 53
6
30 45 100 40 15 15
49 

livrare.out

3

Explicație

În ziua a doua, pachetul cu greutatea 4949 a ajuns în a treia dubă.

Log in or sign up to be able to send submissions!