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
#include <bits/stdc++.h> using namespace std; ifstream fin("ssume.in"); ofstream fout("ssume.out"); int main() { int n , x , i = 0 , j , k , c = 0 , ok = 0; fin >> n; int v[n]; while(fin >> x) { v[i]=x; i++; } for(i = 0 ; i< n ; i++) { ok = 0; for(j = 0 ; j < n ; j++) if(i != j) { for(k = j + 1 ; k < n ; k++) if(v[i] == v[j] + v[k] && !ok) { c++; ok = 1; } } } fout << c; fin.close(); fout.close(); return 0; }