romeo

Time limit: 0.05s Memory limit: 16MB Input: romeo.in Output: romeo.out

Oraşul Julietei este de formă pătrată şi are străzi doar pe direcţiile Nord-Sud şi Est-Vest, toate la distanţe egale şi numite ca în desen: strada verticală 0,1,2,3,0, 1, 2, 3, \dots, respectiv strada orizontală 0,1,2,3,0, 1, 2, 3, \dots.

Julieta locuieşte la intersecţia străzilor: verticală xx şi orizontală yy (pozitia (x,y)(x,y)). Romeo se află în colţul de Sud-Vest al oraşului (poziţia (0,0)(0,0)) şi doreşte să ajungă la Julieta, nu ştim exact de ce, dar este treaba lui.

Peste toate necazurile cunoscute ale bietului băiat, mai apar şi altele:

  • oraşul urcă în pantă spre Nord, ceea ce îngreunează mersul în acea direcţie
  • nu poate merge decât spre Nord sau spre Est, pentru că dacă “ea” l-ar vedea mergând spre Vest sau spre Sud, atunci ar crede că el se îndepărtează definitiv de ea.

Numim segment elementar distanţa dintre două străzi paralele alăturate.

Dacă Romeo merge spre Est, atunci el consumă 1J1J (J=joule=J=joule= o unitate de energie) pentru fiecare segment elementar parcurs. Din cauza pantei, dacă merge spre Nord kk segmente elementare consecutive, consumă (1+2+3++k1+2+3+ \ldots +k ) J \ J.

Romeo vrea să ajungă la Julieta (mergând în condiţiile de mai sus) cu un consum minim de energie.

De exemplu: dacă datele sunt: x=4x=4 şi y=3y=3, atunci desenul alăturat prezintă un drum posibil (dar nu cu consum minim de energie). În desen, avem un prim segment elementar orizontal (consum=1J=1J), apoi spre Nord două segmente elementare (consum: 1+2=3J1+2 = 3J). Urmează 33 segmente spre Est (consum: 1+1+1=3J1+1+1 = 3J) şi ultima porţiune de un segment vertical (consum: 1J1J). Total consum energie: 1+3+3+1=8J1+3+3+1=8J.

Cerință

Scrieţi un program care citeşte xx şi yy şi care afişează numărul minim de JJ consumaţi pentru tot drumul de la poziţia (0,0)(0,0) la poziţia (x,y)(x,y), mergând doar în direcţiile precizate.

Date de intrare

Fişierul de intrare romeo.in conţine numerele xx şi yy pe prima linie, separate de un spaţiu.

Date de ieșire

Fişierul de ieşire romeo.out conţine o singură linie cu numărul de JJ consumaţi pentru distanţa totală parcursă din poziţia de plecare până în cea finală.

Restricții și precizări

  • xx și yy sunt numere naturale
  • 0x,y40 0000 \leq x, y \leq 40 \ 000
  • Fiecare linie din fişierul de intrare şi din fişierul de ieşire se încheie cu marcaj de sfârşit de linie.

Exemplu

romeo.in

3 2

romeo.out

5

Explicație

Datele de intrare indică un oraş ca în desen.

Un drum posibil (el nu este unic) este dat de linia îngroşată. Primul segment vertical consumă 1J1J, porţiunea orizontală 3J3J şi ultimul segment vertical (cel din dreapta), încă 1J1J, deci vom afişa numărul 55, care reprezintă 1J+3J+1J=5J1J+3J+1J=5J.

Log in or sign up to be able to send submissions!