0632 - Iepuri
De la Universitas MediaWiki
Cerința
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
Programul citește de la tastatură numerele n
și p
.
Date de ieșire
Programul va afișa pe ecran n
numere naturale, reprezentând numărul de iepuri din fiecare cușcă..
Restricții și precizări
1 ≤ n ≤ 100
Exemplul 1
Input:
3 10
Output:
2 3 5
Exemplul 2
Input:
999999999999 8
Output:
Constrangeri neindeplinite
Rezolvare
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=" ")