# PBinfo #1446 – memory002 – Rezolvare C++

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

## Enunț

Cerința
Se dă un şir format din n numere naturale distincte. Calculați suma elementelor  din secvenţa ce uneşte cel mai mic şi cel mai mare element din şir.

Date de intrare
Fișierul de intrare memory002.in conține pe prima linie numărul n, iar pe a doua linie n numere naturale distincte separate prin spații.

Date de ieșire
Fișierul de ieșire memory002.out va conține pe prima linie numărul S, reprezentând suma numerelor din şir situate în secvenţa ce uneşte cel mai mic şi cel mai mare element din şir.

Restricții și precizări

2 ≤ n ≤ 500.000
numerele din şir vor fi mai mici decât 2.000.000.000

Exemplu:
memory002.in

5
7 2 4 9 8
memory002.out

15
Explicație
Cel mai mic element este 2 iar cel mai mare este  9. Secvenţa a cărei sumă se cere este 2, 4, 9, iar suma elementelor acestei secvenţe este 15.

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
int n, temp, minim = 2000000001, maxim = -2000000001, inc, sf;
long long S;
ifstream in("memory002.in");
ofstream out("memory002.out");
ifstream in2("memory002.in");
int main() {
    in >> n;
    for (int i = 1; i <= n; i++) {
        in >> temp;
        if (temp < minim) {
            inc = i;
            minim = temp;
        } if(temp > maxim) {
            sf = i;
        	maxim = temp;
        }
    } in2 >> n;
    if (inc > sf) {
    	temp = inc;
    	inc = sf;
    	sf = temp;
    } for (int i = 1; i < inc; ++i)
        in2 >> temp;
    for (int i = inc; i <= sf; ++i) {
        in2 >> temp;
        S = S + temp;
    } out << S;
    return 0;
}
```

## Resurse

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