# PBinfo #3271 – perechecmmdc – Rezolvare C++

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

## Enunț

Cerința
Se dă un șir de n perechi de numere naturale nenule. Să se determine perechea pentru care cel mai mare divizor comun este maxim. Dacă există mai multe asemenea perechi, se va determina aceea pentru care suma valorilor este maximă. Dacă există mai multe asemenea perechi, se va determina prima din șir.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n perechi de numere naturale.

Date de ieșire
Programul va afișa pe ecran două numere, separate printr-un spațiu, reprezentând perechea determinată.

Restricții și precizări

1 ≤ n ≤ 1000
valorile din cele n numere citite vor fi mai mici decât \(2^{31}\)

Exemplu:
Intrare

4
12 18
16 12
18 30
25 35
Ieșire

18 30

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, a, b, maxima = 0, maximb = 0, temp = -1;
    cin >> n;
    for (int i = 1; i <= n; --n) {
        cin >> a >> b;
        int x = a, y = b;
        while (y) {
            int r = x % y;
            x= y;
            y = r;
        } if (x > temp) temp = x, maxima = a, maximb = b;
        else if (x == temp) if(a + b > maxima + maximb) maxima= a, maximb = b;
    } cout << maxima << " " << maximb;
    return 0;
}
```

## Resurse

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