fbpx

Problema #632 – Iepuri – Rezolvari PBInfo

de Mihai-Alexandru

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
  • 1 ≤ 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

S-ar putea sa iti placa