3383 - Cif Max Min1
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>
- 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>