325
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 ≤ 1001 ≤ p ≤ 1 000 000- pentru toate datele de test există soluție
Exemplu
Intrare
3 10
Ieșire
2 3 5
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n , p;
cin >> n >> p;
int a[100];
for(int i = 1 ; i <= n ; ++i)
a[i]=i , p-=i;
int parte=p/n;
int rest=p%n;
for(int i = 1 ; i <= n ; ++i)
a[i]+=parte;
for(int i = n ; i >= 1 && rest; --i)
{
a[i]+=1;
rest--;
}
for(int i = 1 ; i <= n ; ++i)
cout << a[i] << ' ';
return 0;
}
Comentarii