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 .
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!