***********************************************************************
************************************************************************
Slidinėjimo kurortai
Osvaldas nori savaitę slidinėti viename iš kurortų. Kurorte A slidinėjimo sezonas prasideda lapkričio, o baigiasi balandžio mėnesį, bet dėl lavinų pavojaus visą sausį slidinėti negalima. Kurorte B slidinėjama nuo gruodžio pradžios iki kovo pabaigos, tačiau vasario 1-15 dienomis ten vyksta varžybos. Kurorte C slidininkai laukiami nuo lapkričio pradžios iki gegužės pabaigos. Poilsio kaina kiekviename kurorte, įtraukus kelionės išlaidas, atitinkamai yra k1, k2, k3 litų. Žinodami atostogų pradžios datą (mėnesį m ir dieną d), nustatykite, ar Osvalds galės atostogauti bent viename kurorte. Jeigu taip, tai kurį kurortą jam rinktis, kad išleistų mažiausiai pinigų.
Pasitikrinkite,
kai m = 2, d = 5, k1 = 500, k2 = 520, k3 = 499, turėtumėte spausdinti:
Osvaldas galės slidinėti kurorte C. Jam reikės 449 Lt.
kai m = 11, d = 20, k1 = 400, k2 = 350, k3 = 420, turėtumėte spausdinti:
Osvaldas galės slidinėti kurorte A. Jam reikės 400 Lt.
************************************************************************
#include <iostream>
#include <conio.h>
using namespace std;
//==================================================================================
char kuris(int m, int d, int k1, int k2, int k3); //tinka reikšmę sugrąžina
//==================================================================================
void spausdinam(int k1, int k2, int k3, char kurortas);
//==================================================================================
int main() {
int m, //Atostogų mienuo
d; //Atostogų diena
int k1, k2, k3; //Kurortui reikalingi pinigai
char tinka, kurortas; //kuris kurortas tinka
cout << "Atostogų pradžios mėnuo [m]: "; cin >> m;
cout << "Atostogų pradžios diena [d]: "; cin >> d;
bool ne_slid_sezonas = (m >= 6) && (m < 10);
// Tikrinama ar atostogos slidinejimo sezono metu
if (ne_slid_sezonas)
cout <<endl<< "Osvaldo atostogos ne slidinėjimo sezonu!"<< endl;
else
{
cout << "A kurorto kaina [k1]: "; cin >> k1;
cout << "B kurorto kaina [k3]: "; cin >> k2;
cout << "C kurorto kaina [k3]: "; cin >> k3;
kurortas = kuris(m, d, k1, k2, k3);
//išsiaiškiname, kuriame kurorte pigiausia Osvaldo atostogų metu
spausdinam (k1, k2, k3, kurortas);
}
return 0;
}
//surandame, kuriame gali atostogauti už mažiausią kainą
//====================================================================================
char kuris(int m, int d, int k1, int k2, int k3) //tinka reikšmę sugrąžina
{
char tinka = 'C'; //kurortas C tinka visada
bool A = 1; // Kurortas A
bool B = 1; // Kurortas B
bool C = 1; // Kurortas C
if (m == 1 or m == 5) { A = 0; }
// Jeigu mėnuo sausis ar geguze, kurortas A atkrenta...
if ((m == 11 or m >= 4) or (m == 2 and d <= 15)) { B = 0; }
// Jeigu mėnuo 11, 4, 5, arba 2 ir diena <= 15, kurortas B atkrenta...
cout << "A= "<< A <<" B= "<< B <<" C= "<< C << endl;
//pasitikriname, 1 - galima slidinėti, 0 - negalima
//kur pigiausia aiškinamės
if (k1 <= k2){
if (k1 < k3) if (A) tinka = 'A';
else if (k2 < k3 and B) tinka ='B';
}
else {
if (k2 < k3 and B) tinka = 'B';
else if (k1 < k3 and A ) tinka = 'A';
}
return tinka;
}
//====================================================================================
void spausdinam(int k1, int k2, int k3, char kurortas)
{
cout << "**************************************************************"<<endl;
cout << "Osvaldas galės slidinėti kurorte " << kurortas << " Jam reikės -->";
if (kurortas == 'C'){
cout << k3 << "Lt.";
}
else if (kurortas =='B'){
cout << k2 << "Lt.";
}
else {
cout << k1 << "Lt.";
}
}