3383 - Cif Max Min1

From Bitnami MediaWiki
Revision as of 10:03, 26 March 2023 by Dragos1234 (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/860/pachete1] == Cerinţa == Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieșire == Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul '''P''' , reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar pro...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: [1]

Cerinţa

Se dă numărul natural nenul n. Să se determine produsul primelor n pătrate perfecte nenule.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."

Restricţii şi precizări

  • 0 < n ⩽ 10

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576


Exemplul 2

Intrare
16
Ieșire
Datele introduse nu corespund cerințelor.


Exemplul 3

Intrare
7
Ieșire
Datele corespund cerințelor.
25401600


Rezolvare

<syntaxhighlight lang="python" line>

  1. 3383

def count_containers(volumes, C):

   volumes.sort(reverse=True)
   count = 0
   current = C
   for volume in volumes:
       if volume <= current:
           current -= volume
       else:
           count += 1
           current = C - volume
   if current < C:
       count += 1
   return count


def validate_input(n, C, volumes):

   if not (1 <= n <= 1000):
       print("Numărul de pachete trebuie să fie între 1 și 1000.")
       return False
   if not all(1 <= v < 1000000000 for v in volumes):
       print("Volumele pachetelor trebuie să fie mai mici decât 1.000.000.000.")
       return False
   if not (1 <= C < 1000000000):
       print("Capacitatea camionului trebuie să fie mai mică decât 1.000.000.000.")
       return False
   return True


if __name__ == '__main__':

   n, C = map(int, input("Pachete si capacitate: ").split())
   volumes = list(map(int, input("Volume: ").split()))
   if validate_input(n, C, volumes):
       print(count_containers(volumes, C))


</syntaxhighlight>