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; }