0632 - Iepuri
Cerința[edit | edit source]
Gigel are p
iepuri pe care vrea să-i distribuie în n
cuști astfel încât:
- toți iepurii să intre în cuști
- fiecare cușcă să conțină cel puțin un iepure
- să nu existe două cuști cu același număr de iepuri
- diferența dintre numărul maxim de iepuri dintr-o cușcă și numărul minim de iepuri dintr-o cușcă să fie minimă
Determinați o modalitate de distribuire a iepurilor în cuști care să respecte condițiile de mai sus.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n
și p
.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran n
numere naturale, reprezentând numărul de iepuri din fiecare cușcă..
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 100
Exemplul 1[edit | edit source]
Input:
3 10
Output:
2 3 5
Exemplul 2[edit | edit source]
Input:
999999999999 8
Output:
Constrangeri neindeplinite
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def ver(n,p):
if not(1<=n<=100): print("Constrangeri neindeplinite") exit() if not(1<=p<=1000000): print("Constrangeri neindeplinite") exit()
n, p = map(int, input().split()) ver(n,p) v = [0] * 105
for i in range(1, n + 1):
v[i] = i p -= i
for i in range(1, n + 1):
v[i] += p // n
if p % n != 0:
k = p % n i = n while i > 0 and k: v[i] += 1 i -= 1 k -= 1
for i in range(1, n + 1):
print(v[i], end=" ")
</syntaxhighlight>