fbpx

Problema #2144 – diofantic – Rezolvari PBInfo

de Mihai-Alexandru

Se dau numerele naturale nenule a, b, c, n, urmate de o secvența de n numere naturale distincte ordonate crescător, notată cu s.

Cerința

Scrieți în limbajul C++ definiția completă a subprogramului diofantic care are 5 parametri, după cum urmează:

Exemplu

Fie secvența:
5
0 3 4 5 18
Pentru a=1, b=1, c=25 funcția va returna valoarea 4.
Cele 4 perechi sunt: (3,4), (4,3), (0,5), (5,0).

Important

Soluția propusă va conține doar definiția subprogramului cerut. 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.

int diofantic(int n, int s[], int a,long long b,int c)
{
    int k=0;int i=1; int j=n;
    while(i<=n && j>0)
    {
        if(a*s[i]*s[i]+b*s[j]*s[j]==c )
        {
            k++;
            i++;
        }
        if(a*s[i]*s[i]+b*s[j]*s[j]<c)
        i++;
        if(a*s[i]*s[i]+b*s[j]*s[j]>c)
        j--;
    }
    return k;
}
Comentarii

S-ar putea sa iti placa