# PBinfo #271 – SSume – Rezolvare C++

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

## Enunț

Cerinţa
Se dă un tablou unidimensional cu n elemente, numere naturale nenule cu cel mult 8 cifre fiecare. Determinaţi câte dintre elementele tabloului se pot scrie ca sumă a altor două elemente aflate pe poziţii distincte din tablou.

Date de intrare
Fişierul de intrare ssume.in conţine pe prima linie numărul n; urmează cele n elemente ale tabloului, dispuse pe mai multe linii şi separate prin spaţii.

Date de ieşire
Fişierul de ieşire ssume.out va conţine pe prima linie numărul C, numărul de elemente ale tabloului care se pot scrie ca sumă a altor două elemente aflate pe poziţii distincte din tablou.

Restricţii şi precizări

1 ≤ n ≤ 100

Exemplu:
ssume.in

7
1 10 25 6 2 15 3 
ssume.out

2
Explicație
25=10+15, 3=1+2

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
ifstream fin("ssume.in");
ofstream fout("ssume.out");
int n, a[101];
int main(){
	fin >> n;
	for(int i=1;i<=n;++i)
		fin >> a[i];
	for(int i=1;i<=n;++i)
		for(int j=i+1 ; j<=n ; ++j)
			if(a[i]>a[j]){
				int aux = a[i];
				a[i] = a[j];
				a[j] = aux;
			}
	int c = 0, pp;
	for(int i=3 ; i<=n; ++i){
		pp = 0;
		for(int j=1 ; j<i-1 && !pp ; ++j)
			for(int k=j+1 ; k<i && !pp ; ++k)
				if(a[i] == a[j] + a[k])
					pp =1;
		if(pp)
			c++;
	}
	fout << c;
	return 0;
}
```

## Resurse

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