Va rog frumos sa ma ajutati cu urmatoarea problema, o incerc de ceva timp dar primesc doar 50 de pct: Aveti detalii in poze:
problema - #2419 Intalnire
Cerința
Doi prieteni se afla pe axa Ox, in puncte cu coordonate întregi. Primul se află în punctul x1 = a, iar al doilea se află în punctul x2 = b. Fiecare se poate mișca cu o poziție, la stânga sau la dreapta, de un număr nelimitat de ori. Când se mișcă, oboseala se modifică după următoarea regulă: la prima mișcare oboseala crește cu 1, la a doua mișcare oboseala crește cu 2, la a treia cu 3 și asa mai departe. De exemplu, dacă un prieten se mișcă mai întâi la stânga, apoi la dreapta, și apoi iar la stânga, oboseala lui devine 1 + 2 + 3 = 6.
Prietenii vor să se întâlnească într-un punct cu coordonata număr întreg. Aflați oboseala totală minimă pe care cei doi cei doi o vor acumula.
#include <iostream>
using namespace std;
long long a,b,s,dif,s1,s2, mij;
int main()
{
cin >> a >> b;
if (a>b) dif=a-b;
else dif=b-a;
mij=dif/2;
if (mij%2==0) s1=(mij/2)*(1+mij);
else s1=mij*((1+mij)/2);
if (dif%2==0)
{
s=2*s1;
}
else
{
if ((mij+1)%2==0) s2=((mij+1)/2)*(2+mij);
else s2=((2+mij)/2)*(mij+1);
s=s1+s2;
}
cout << s;
}