👤
Ionutg38
a fost răspuns

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


Răspuns :

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int n,x,i=0,j,k,C=0,ok=0;
    ifstream fin("ssume.in");
    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;
               }
            }
    }
    ofstream fout("ssume.out");
    fout<<C;
    fin.close();
    fout.close();
  return 0;
}