fbpx

Problema #2419 – Intalnire – Rezolvari PBInfo

de Mihai-Alexandru

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.

Date de intrare

Programul citește de la tastatură numerele a si b.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând oboseala minimă posibilă acumulată de cei doi prieteni.

Restricții și precizări

  • 1 ≤ a ≤ 1000
  • 1 ≤ b ≤ 1000
  • a≠b

Exemplu

Intrare

3 4

Ieșire

1

Explicație

Primul prieten face un pas la dreapta (ajungând la punctul b=4), sau al doilea prieten face un pas la stânga (ajungând la punctul a=3). În ambele cazuri, oboseala totala este egală cu 1.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a , b;
    cin >> a >> b;
    if(a > b)
        swap(a , b);
    bool ok = true;
    int cnt = 0;
    for(int i = 1 ; ok ; ++i)
    {
        if(a != b)
        {
            a++;
            cnt+=i;
            if(a == b)
                ok=false;
            else
                b-- , cnt+=i;
        }
        else
        {
            ok = false;
        }
    }
    cout << cnt;
    return 0;
}
Comentarii

S-ar putea sa iti placa