#632 Iepuri
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
1 ≤ p ≤ 1 000 000
pentru toate datele de test există soluție
Exemplu
Intrare
3 10
Ieșire
2 3 5
Răspunsuri la întrebare
Răspuns de
3
Răspuns:
#include <iostream>
using namespace std;
int p, n, i, v[102], s, c, a, r;
int main()
{
cin >> n >> p;
for (i=1; i<=n; ++i)
{ v[i]=i; s=s+i; }
a=(p-s)/n;
for (i=1; i<=n; ++i) v[i]+=a;
r=(p-s)%n;
for (i=n-r+1; i<=n; ++i) ++v[i];
for (i=1; i<=n; ++i)
cout << v[i] << " ";
}
Explicație:
https://pastebin.com/iM7dskYD
Am plasat şi link-ul de pe pastebin, în caz că ai probleme la copy/paste
Am folosit suma Gaus 1+2+... +n
am plasat în vector primele n numere naturale distincte, de la 1 la n
Prin a=(p-s)/n; am aflat cât se poate adăuga la fiecare, dacă p > s
prin r=(p-s)%n; am aflat ce rest a mai rămas de adăugat, şi în fine am adăugat câte 1 la ultimii r termeni
Succese, sănătate şi Paşte fericit
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
9 ani în urmă
Limba română,
9 ani în urmă