Informatică, întrebare adresată de hiritianis, 8 ani în urmă

Ghiță a primit de ziua lui o plantă exotică, ce se comportă foarte ciudat. El a măsurat-o când a primit-o și a constatat că are D cm, apoi a văzut că se dezvoltă într-un ritm special:

În prima zi, planta crește cu A cm
În a doua zi, descrește cu B cm
În a treia zi, iar crește cu A cm
În a patra zi, descrește din nou cu B cm
etc.
Pe scurt, în zilele cu număr de ordine impar crește cu A cm, iar în cele cu număr de ordine par, descrește cu B cm.

Cerința
Știind D, înalțimea inițiala a plantei și valorile A și B cu care aceasta crește, respectiv descrește, să se afla ce înălțime va avea planta lui Ghiță la finalul celei de-a N -a zile.

Date de intrare
Pe prima linie a fișierului planta.in se vor afla patru numere naturale D A B N în aceasta ordine, separate prin câte un spațiu, cu semnificațiile din enunț.

Date de ieșire
Pe prima linie a fișierului planta.out se va afla un număr H, semnificând înălțimea finală a plantei în cm la finalul celei de-a N -a zile.

Restricții și precizări
0 ≤ D ≤ 100
1 ≤ B ≤ A ≤ 1 000 000
1 ≤ N ≤ 1 000 000 000
Pentru 50% dintre teste, 1 ≤ N ≤ 1 000 000
Se garantează că pentru toate testele valorile se încadrează în tipul int.
Exemplul 1:
planta.in

4 5 2 3
planta.out

12
Explicație
Dupa prima zi: H = 4 + 5 = 9
Dupa a doua zi: H = 9 – 2 = 7
Dupa a treia zi: H = 7 + 5 = 12
Deci la finalul celei de-a 3-a zile, inaltimea plantei o sa fie 14 cm .

Exemplul 2:
planta.in

57 1000 1000 120
planta.out

57

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
5

#include <fstream>

using namespace std;

ifstream fin("planta.in");

ofstream fout("planta.out);

int main()

{

unsigned long long int n,d,a,b;

fin >> d >> a >> b >> n;

d += (n/2)*(a-b);

if(n%2)

d+=a;

fout << d;

}

Alte întrebări interesante