Rezolvare completă PbInfo #2908 planta

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 12 cm .

Exemplul 2:

planta.in

57 1000 1000 120

planta.out

57

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema planta:

#include <fstream>

using namespace std;
ifstream fin("planta.in");
ofstream fout("planta.out");

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

int main()
{
    fin>>d>>a>>b>>n;
  /*
   h=d;
     for(i=1; i<=n; i++)
         if(i%2==1)
             h=h+a;
         else
             h=h-b;
 */
   h=d+(a-b)*(n/2);
    if(n%2==1)
        h=h+a;
  fout << h << endl;
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2908 planta

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2908 planta de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!