#include <iostream>

using namespace std;
class Publikacija {
private:
    int godina;
    string naziv;
public:
    Publikacija() {}
    Publikacija(int _godina, string _naziv) {
        godina = _godina;
        naziv = _naziv;
    }
    int get_godina() {
        return godina;
    }
    string get_naziv() {
        return naziv;
    }
    
    
};
class Kniga : public Publikacija {
private:
    int broj_na_stranici;
    
public:
    Kniga() : Publikacija() {}
    Kniga(int _godina, string _naziv, int _broj_na_stranici) : Publikacija(_godina, _naziv) {
        broj_na_stranici = _broj_na_stranici;
    }
    void printKniga() {
        cout << "Kniga" << endl;
        cout << get_naziv() << " " << get_godina() << " " << broj_na_stranici << endl;
    }
};
class Vesnik : protected Publikacija {
private:
    int reden_broj;
public:
    Vesnik() : Publikacija() {}
    Vesnik(int _godina, string _naziv, int _reden_broj) : Publikacija(_godina, _naziv) {
        reden_broj = _reden_broj;
    }
    void print_vesnik() {
        cout << "Vesnik" << endl;
        cout << get_naziv() << " "<< get_godina() << " " << reden_broj << endl;
    }
};
class DnevenVesnik : private Publikacija {
private:
    int mesec;
public:
    DnevenVesnik() : Publikacija() {}
    DnevenVesnik(int _godina, string _naziv, int _mesec) : Publikacija(_godina, _naziv) {
        
        mesec = _mesec;
    }
    void print_dneven() {
        cout << "Dneven" << endl;
        cout << get_naziv() << " " << get_godina() << " " << mesec << endl;
    }
    
};
int main() {
    Kniga *kniga = new Kniga(2020, "zlostrovsvo i kazna", 2000);
    kniga->printKniga();
    Vesnik *vesnik = new Vesnik(2020, "vest", 30);
    vesnik -> print_vesnik();
    DnevenVesnik *dn = new DnevenVesnik(2020, "vecer", 40);
    dn->print_dneven();
   return 0;
}
