# PBinfo #4010 – MosCraciun2 – Rezolvare C++

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

## Enunț

Cerința
Moș Crăciun pregătește cadourile pentru acest an. El trebuie să dea cadouri identice la n copii. Pentru aceasta, a vizitat m magazine (posibil online) și pentru fiecare magazin a aflat prețul cadoului în acel magazin și numărul de cadouri disponibile în acel magazin.

Determinati suma minimă necesară pentru a cumpăra cele n cadouri necesare. Dacă nu se pot cumpăra cele n cadouri afișați mesajul imposibil.

Date de intrare
Programul citește de la tastatură numerele n m, iar apoi m perechi numere naturale p c, reprezentând prețul și cantitatea de cadouri disponibile în cele n magazine.

Date de ieșire
Programul va afișa pe ecran suma totală necesară S sau mesajul imposibil.

Restricții și precizări

1 ≤ n ≤ 1000
1 ≤ m ≤ 100
0 ≤ c ≤ 100
1 ≤ p ≤ 100

Exemplu:
Intrare

5 3
2 1
4 5
3 2
Ieșire

16
Explicație
Moș Crăciun va cumpăra un cadou cu prețul 2, două cu prețul 3 și două cu prețul 4.

## Cod sursă C++

```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct Magazin{
	int pret , cantitate;
};
int n , m;
Magazin V[101];
bool fcmp(Magazin A, Magazin B)
{
	if(A.pret < B.pret)
		return true;
	return false;
}
int main()
{
	cin >> n >> m;
	int k = 0;
	for(int i = 1; i <= m ; i ++)
	{
		cin >> V[i].pret >> V[i].cantitate;
		k += V[i].cantitate;
	}
	if(n > k)
		cout << "imposibil\n";
	else
	{
		sort(V + 1 , V + m + 1 , fcmp);
		int S = 0;
		for(int i = 1 ; i <= m && n > 0 ; i ++)
			if(V[i].cantitate <= n)
			{
				S += V[i].pret * V[i].cantitate, n -= V[i].cantitate;
			}
			else
				S += n * V[i].pret, n = 0;
		cout << S << endl;
	}
	return 0;
}
```

## Resurse

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