# PBinfo #4007 – PartitieAB1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se dau trei numere naturale n a b, 1 ≤ a < b < n. Să se determine o modalitate de a-l scrie pe n ca sumă de termeni egali cu a sau b în care numărul de termeni egali cu a este minim.

Date de intrare
Programul citește de la tastatură numerele n a b.

Date de ieșire
Programul va afișa pe ecran un șir de numere ordonate crescător, reprezentând termenii ceruți.

Restricții și precizări

1 ≤ n ≤ 1.000.000
1 ≤ a < b ≤ 1000
pentru toate datele de test n poate fi scris ca sumă de termeni egali cu a și b.

Exemplu:
Intrare

44 3 5
Ieșire

3 3 3 5 5 5 5 5 5 5

## Cod sursă C++

```cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int a , b , n, p = -1 , q = -1;
	cin >> n >> a >> b;
	for(int i = 0 ; p == -1 ; i ++)
		if( (n - i * a) % b == 0)
			p = i;
	q = (n - p * a) / b;
	for(int i =1 ; i <= p ; i ++)
		cout << a << " ";
	for(int i = 1; i <= q ; i ++)
		cout << b << " ";
	cout << endl;
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4007)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4007/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4007/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
