Răspuns :
#include <iostream>
using namespace std;
int main() {
int a,b,S=0;
cin>>a;
cin>>b;
if(a<b)
{
int aux=a;
a=b;
b=aux;
}
int def=a-b;
int i=0,ad=1;
while(def!=0)
{
def--;
S=S+ad;
i++;
if(i==2)
{
ad++;
i=0;
}
}
cout<<S;
}
La rezolvare m-am gandit sa aflu prima data diferenta dintre cele doua numere. Dupa care folosesc acel while, care merge pana cand diferenta (care reprezinta numarul de pozitii) ajunge la zero. Daca este diferita de zero atunci unul dintre ei trebuie sa se mute cu o pozitie, si adunam la numarul minim de oboseala ad, adica oboseala pentru aceea mutare. Folosim un contor i, care in cazul in care ajunge la zero inseamna ca fiecare dintre prieteni a realizat mutarea cu oboseala minima, asa ca vom trece la urmatoarea mutare cu oboseala mai mare si vom reface contorul pentru a vedea cand se vor realiza dinou cele doua mutari(una de catre cel din stanga si una de catre cel din dreapta).
Vă mulțumim că ați vizitat site-ul nostru web care acoperă despre Informatică. Sperăm că informațiile furnizate v-au fost utile. Nu ezitați să ne contactați dacă aveți întrebări sau aveți nevoie de asistență suplimentară. Ne vedem data viitoare și nu ratați să marcați.