2419 - Întâlnire
Cerință
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
Exemplul 1
- Intrare
- 3 4
- Ieșire
- 1
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(a, b):
# Verifică dacă a și b sunt în intervalul [0,1000] și diferite între ele. if 0 <= a <= 1000 and 0 <= b <= 1000 and a != b: return True return False
def oboseala_minima(a, b):
if a > b: a, b = b, a
ok = True # Inițializăm ok cu True, pentru a intra în bucla while. s = 0 # Inițializăm variabila s cu 0. i = 1 # Inițializăm i cu 1.
while ok: if a != b: a += 1 # Incrementăm a. s += i # Adăugăm la s valoarea lui i. if a == b: ok = False # În cazul în care a ajunge egal cu b, ieșim din bucla while. else: b -= 1 # Decrementăm b. s += i # Adăugăm la s valoarea lui i. else: ok = False # În cazul în care a ajunge egal cu b, ieșim din bucla while. i += 1 # Incrementăm i.
print(s) # Afișăm valoarea finală a variabilei s.
if __name__ == "__main__":
a = int(input()) # Citim prima valoare. b = int(input()) # Citim a doua valoare. if validare(a, b): # Verificăm dacă valorile citite sunt valide, folosind funcția validare. print("Datele de intrare corespund restricțiilor impuse.") oboseala_minima(a, b) # Dacă valorile sunt valide, apelăm funcția oboseala_minima. else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>