Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Vleznica
- {
- protected:
- char natprevar[50];
- float osnovnaCena;
- public:
- Vleznica(){}
- Vleznica(char *n, float oc)
- {
- strcpy(natprevar,n);
- osnovnaCena=oc;
- }
- bool operator<(Vleznica &rhs)
- {
- return this->cena() < rhs.cena();
- }
- virtual float cena()=0;
- friend ostream &operator<<(ostream &out, Vleznica &rhs)
- {
- out<<rhs.natprevar<<endl<<rhs.cena()<<endl;
- return out;
- }
- };
- class VleznicaStoenje:public Vleznica
- {
- char tribina;
- public:
- VleznicaStoenje(){}
- VleznicaStoenje(char *n, float oc, char t):Vleznica(n,oc)
- {
- tribina=t;
- }
- float cena()
- {
- if(tribina=='S')
- return osnovnaCena*1.3;
- return osnovnaCena;
- }
- };
- class VleznicaSedenje:public Vleznica
- {
- int red;
- int blok;
- public:
- VleznicaSedenje(){}
- VleznicaSedenje(char *n, float oc, int b, int r):Vleznica(n,oc)
- {
- red=r;
- blok=b;
- }
- float cena()
- {
- if(red<8)
- return osnovnaCena*1.4;
- if(red<15)
- return osnovnaCena*1.2;
- return osnovnaCena;
- }
- };
- void najmalaCena(Vleznica** niza, int n)
- {
- int najmal=0;
- for(int i=1;i<n;i++)
- if(*niza[i]<*niza[najmal])
- najmal=i;
- cout<<*niza[najmal];
- }
- int main() {
- int n;
- cin >> n;
- Vleznica** vleznici = new Vleznica*[n];
- for(int i = 0; i < n; ++i) {
- char ime[30];
- float osnovnaCena;
- cin >> ime >> osnovnaCena;
- if(i % 2) {
- int blok, red;
- cin >> blok >> red;
- vleznici[i] = new VleznicaSedenje(ime, osnovnaCena, blok, red);
- } else {
- char tribina;
- cin >> tribina;
- vleznici[i] = new VleznicaStoenje(ime, osnovnaCena, tribina);
- }
- }
- najmalaCena(vleznici, n);
- for(int i = 0; i < n; ++i) {
- delete vleznici[i];
- }
- delete [] vleznici;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement