# PBinfo #2630 – permd – Rezolvare C++

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

## Enunț

Cerința
Să se scrie funcția cu următorul antet:

int PermD(int a[], int n)

Funcția primește ca parametru un vector a = (a1, a2, ..., an) de lungime n care memorează toate valorile distincte din mulțimea {1, 2,..., n-1}, dar exact una din aceste valori apare în vector de două ori. Funcția trebuie să returneze valoarea care apare de două ori.

Restricții și precizări

1 ≤ n ≤ 1.000.000
Numele funcției este PermD
Întotdeauna va exista exact o valoare care apare de două ori
Elementele din vector sunt indexate de la 1 la n

Exemplu:
Dacă n = 6 și a = (3,5,2,1,2,4) atunci PermD(a, n) va returna valoarea 2.

Important
Soluţia propusă va conţine definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
int PermD(int a[], int n)
{
    int i, j;
    i = n;
    while (a[i] != 0)
    {
        j = a[i];
        a[i] = 0;
        i = j;
    }
    return i;
}
```

## Resurse

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