# PBinfo #2271 – ProdMax1 – Rezolvare C++

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

## Enunț

Cerința
Se dă un șir cu n numere întregi. Determinați cel mai mare număr care poate fi scris ca produs de două elemente ale șirului.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.

Date de ieșire
Programul va afișa pe ecran numărul determinat P.

Restricții și precizări

2 ≤ n ≤ 100.000
elementele șirului vor fi cuprinse în intervalul (-1.000.000, 1.000.000)

Exemplu:
Intrare

7
-8 3 9 -1 -2 7 -10 
Ieșire

80

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n;
int V[100001];
int main()
{
	cin >> n;
	for(int i = 1; i <= n; i++)
		cin >> V[i];
	int max1 = V[1], max2 = V[2];
	if(max1 < max2)
	{
		int aux = max1;
		max1 = max2;
		max2 = aux;
	}
	for(int i = 3; i <= n; i++)
		if(V[i] > max1)
			max2 = max1, max1 = V[i];
		else
			if(V[i] > max2)
				max2 = V[i];
	int min1 = V[1], min2 = V[2];
	if(min1 > min2)
	{
			int aux = min1;
			min1 = min2;
			min2 = aux;
	}
	for(int i = 3; i <= n; i++)
		if(V[i] < min1)
			min2 = min1, min1 = V[i];
		else
			if(V[i] < min2)
				min2 = V[i];
	long long int P1 = 1LL * min1 * min2, P2 = (long long)max1 * max2;
	if(P1 > P2)
		cout << P1 << "\n";
	else
		cout << P2 << "\n";
}
```

## Resurse

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