Advertisement
add1ctus

Влезници

Jun 15th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Vleznica
  7. {
  8. protected:
  9.     char natprevar[50];
  10.     float osnovnaCena;
  11. public:
  12.     Vleznica(){}
  13.     Vleznica(char *n, float oc)
  14.     {
  15.         strcpy(natprevar,n);
  16.         osnovnaCena=oc;
  17.     }
  18.     bool operator<(Vleznica &rhs)
  19.     {
  20.         return this->cena() < rhs.cena();
  21.     }
  22.     virtual float cena()=0;
  23.     friend ostream &operator<<(ostream &out, Vleznica &rhs)
  24.     {
  25.         out<<rhs.natprevar<<endl<<rhs.cena()<<endl;
  26.         return out;
  27.     }
  28. };
  29.  
  30. class VleznicaStoenje:public Vleznica
  31. {
  32.     char tribina;
  33. public:
  34.     VleznicaStoenje(){}
  35.     VleznicaStoenje(char *n, float oc, char t):Vleznica(n,oc)
  36.     {
  37.         tribina=t;
  38.     }
  39.     float cena()
  40.     {
  41.         if(tribina=='S')
  42.             return osnovnaCena*1.3;
  43.         return osnovnaCena;
  44.     }
  45. };
  46.  
  47. class VleznicaSedenje:public Vleznica
  48. {
  49.     int red;
  50.     int blok;
  51. public:
  52.     VleznicaSedenje(){}
  53.     VleznicaSedenje(char *n, float oc, int b, int r):Vleznica(n,oc)
  54.     {
  55.         red=r;
  56.         blok=b;
  57.     }
  58.     float cena()
  59.     {
  60.         if(red<8)
  61.             return osnovnaCena*1.4;
  62.         if(red<15)
  63.             return osnovnaCena*1.2;
  64.         return osnovnaCena;
  65.     }
  66. };
  67.  
  68. void najmalaCena(Vleznica** niza, int n)
  69. {
  70.     int najmal=0;
  71.     for(int i=1;i<n;i++)
  72.         if(*niza[i]<*niza[najmal])
  73.             najmal=i;
  74.     cout<<*niza[najmal];
  75. }
  76.  
  77. int main() {
  78.     int n;
  79.     cin >> n;
  80.     Vleznica** vleznici = new Vleznica*[n];
  81.     for(int i = 0; i < n; ++i) {
  82.         char ime[30];
  83.         float osnovnaCena;
  84.         cin >> ime >> osnovnaCena;
  85.         if(i % 2) {
  86.             int blok, red;
  87.             cin >> blok >> red;
  88.             vleznici[i] = new VleznicaSedenje(ime, osnovnaCena, blok, red);
  89.         } else {
  90.             char tribina;
  91.             cin >> tribina;
  92.             vleznici[i] = new VleznicaStoenje(ime, osnovnaCena, tribina);
  93.         }
  94.     }
  95.  
  96.     najmalaCena(vleznici, n);
  97.  
  98.     for(int i = 0; i < n; ++i) {
  99.         delete vleznici[i];
  100.     }
  101.     delete [] vleznici;
  102.     return 0;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement