#include <iostream>

using namespace std;

class Restoran {
private:
    char * ime;
    char * adresa;
    int godina_na_osnovanje;
    float dohod;
    float prodadeni_vafli;
    char odgovorno_lice[100];
    
public:
    Restoran() {
        
    }
    Restoran(char * _ime, char * _adresa, int _godina_na_osnovanje, float _dohod, float _prodadeni_vafli, char  * _odgovorno_lice) {
        ime = new char[(strlen(_ime))];
        strcpy(ime, _ime);
        
        adresa = new char[strlen(_adresa)];
        strcpy(adresa, _adresa);
        
        godina_na_osnovanje = _godina_na_osnovanje;
        dohod = _dohod;
        prodadeni_vafli = _prodadeni_vafli;
        strcpy(odgovorno_lice, _odgovorno_lice);
    }
    
    Restoran(const Restoran & tmp) {
        ime = new char[(strlen(tmp.ime))];
        strcpy(ime, tmp.ime);
        
        adresa = new char[strlen(tmp.adresa)];
        strcpy(adresa, tmp.adresa);
        
        godina_na_osnovanje = tmp.godina_na_osnovanje;
        dohod = tmp.dohod;
        prodadeni_vafli = tmp.prodadeni_vafli;
        strcpy(odgovorno_lice, tmp.odgovorno_lice);
    }
    Restoran  & operator = (const Restoran & tmp) {
        ime = new char[(strlen(tmp.ime))];
        strcpy(ime, tmp.ime);
        
        adresa = new char[strlen(tmp.adresa)];
        strcpy(adresa, tmp.adresa);
        
        godina_na_osnovanje = tmp.godina_na_osnovanje;
        dohod = tmp.dohod;
        prodadeni_vafli = tmp.prodadeni_vafli;
        strcpy(odgovorno_lice, tmp.odgovorno_lice);
        
        return *this;
    }
    ~Restoran() {
        delete[] ime;
        delete [] adresa;
    }
    bool operator >= (Restoran tmp) {
        if(dohod >= tmp.dohod) {
            return true;
        }
        return false;
    }
    friend istream & operator >> (istream & stream, Restoran & tmp);

    
};

class RestoranBezIsporaka : public Restoran {
private:
    string najpopularna_vafla;
    string tip_na_zacini;
    float rejting;
    float zarabotka;
    
public:
    RestoranBezIsporaka() : Restoran(){}
    RestoranBezIsporaka(char * _ime, char * _adresa, int _godina_na_osnovanje, float _dohod, float _prodadeni_vafli, char  * _odgovorno_lice, string _najpopularna_vafla, string _tip_na_zacini, float _rating, float _zarabotka) : Restoran(_ime, _adresa, _godina_na_osnovanje, _dohod, _prodadeni_vafli, _odgovorno_lice){
        najpopularna_vafla = _najpopularna_vafla;
        tip_na_zacini = _tip_na_zacini;
        rejting = _rating;
        zarabotka = _zarabotka;
    }
    RestoranBezIsporaka(const RestoranBezIsporaka & tmp) : Restoran(tmp) {
        najpopularna_vafla = tmp.najpopularna_vafla;
        tip_na_zacini = tmp.tip_na_zacini;
        rejting = tmp.rejting;
        zarabotka = tmp.zarabotka;
        
    }
};
istream & operator >> (istream & stream, Restoran & tmp) {
    
    stream >> tmp.ime >> tmp.adresa >> tmp.godina_na_osnovanje >> tmp.dohod >> tmp.prodadeni_vafli >> tmp.odgovorno_lice;
    
    return stream;
}
int main()
{

    return 0;

}
