using System;
public class Radnik {
private string ime;
private string prezime;
private string jmbg;
public string Ime {
get { return ime; }
set { ime = value; }
}
public string Prezime {
get { return prezime; }
set { prezime = value; }
}
public string Jmbg {
get { return jmbg; }
set { jmbg = value; }
}
public Radnik() {
ime = "";
prezime = "";
jmbg = "";
}
public Radnik(string ime, string prezime, string jmbg) {
this.ime = ime;
this.prezime = prezime;
this.jmbg = jmbg;
}
public Radnik(Radnik r) {
ime = r.ime;
prezime = r.prezime;
jmbg = r.jmbg;
}
public override string ToString() {
return ($"Ime: {ime}, prezime: {prezime}, JMBG: {jmbg}");
}
}
public class Lekar : Radnik {
private int brojLicence;
public int BrojLicence {
get { return brojLicence; }
set { brojLicence = value; }
}
public Lekar() : base() {
brojLicence = 0;
}
public Lekar(string ime, string prezime, string jmbg, int brojLicence) : base(ime, prezime, jmbg) {
this.brojLicence = brojLicence;
}
public Lekar(Lekar l) : base(l) {
brojLicence = l.brojLicence;
}
public override string ToString() {
return base.ToString() + ", broj licence: " + brojLicence;
}
}
public enum Specijalnost {
OPSTA,
NEURO,
KARDIO
}
public class Hirurg : Lekar {
private Specijalnost specijalnost;
public Specijalnost Specijalnost {
get { return specijalnost; }
set { specijalnost = value; }
}
public Hirurg() : base() {
specijalnost = Specijalnost.OPSTA;
}
public Hirurg(string ime, string prezime, string jmbg, int brojLicence, Specijalnost specijalnost) : base(ime, prezime, jmbg, brojLicence) {
this.specijalnost = specijalnost;
}
public Hirurg(Hirurg h) : base(h) {
specijalnost = h.specijalnost;
}
public override string ToString() {
return base.ToString() + ", specijalnost: " + specijalnost.ToString();
}
}
class Program {
static void Main(string[] args) {
Radnik r = new Radnik("Marko", "Markovic", "2505974710002");
Lekar l = new Lekar("Jovan", "Jovanovic", "0110966713042", 12563);
Hirurg h = new Hirurg("Nikola", "Nikolic", "1404990705020", 13472, Specijalnost.NEURO);
Console.WriteLine(r);
Console.WriteLine(l);
Console.WriteLine(h);
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFJhZG5payB7CgogICAgcHJpdmF0ZSBzdHJpbmcgaW1lOwogICAgcHJpdmF0ZSBzdHJpbmcgcHJlemltZTsKICAgIHByaXZhdGUgc3RyaW5nIGptYmc7CiAgICAKICAgIHB1YmxpYyBzdHJpbmcgSW1lIHsKICAgICAgICBnZXQgeyByZXR1cm4gaW1lOyB9CiAgICAgICAgc2V0IHsgaW1lID0gdmFsdWU7IH0KICAgIH0KICAgIAogICAgcHVibGljIHN0cmluZyBQcmV6aW1lIHsKICAgICAgICBnZXQgeyByZXR1cm4gcHJlemltZTsgfQogICAgICAgIHNldCB7IHByZXppbWUgPSB2YWx1ZTsgfQogICAgfQogICAgCiAgICBwdWJsaWMgc3RyaW5nIEptYmcgewogICAgICAgIGdldCB7IHJldHVybiBqbWJnOyB9CiAgICAgICAgc2V0IHsgam1iZyA9IHZhbHVlOyB9CiAgICB9CiAgICAKICAgIHB1YmxpYyBSYWRuaWsoKSB7CiAgICAgICAgaW1lID0gIiI7CiAgICAgICAgcHJlemltZSA9ICIiOwogICAgICAgIGptYmcgPSAiIjsKICAgIH0KICAgIAogICAgcHVibGljIFJhZG5payhzdHJpbmcgaW1lLCBzdHJpbmcgcHJlemltZSwgc3RyaW5nIGptYmcpIHsKICAgICAgICB0aGlzLmltZSA9IGltZTsKICAgICAgICB0aGlzLnByZXppbWUgPSBwcmV6aW1lOwogICAgICAgIHRoaXMuam1iZyA9IGptYmc7CiAgICB9CiAgICAKICAgIHB1YmxpYyBSYWRuaWsoUmFkbmlrIHIpIHsKICAgICAgICBpbWUgPSByLmltZTsKICAgICAgICBwcmV6aW1lID0gci5wcmV6aW1lOwogICAgICAgIGptYmcgPSByLmptYmc7CiAgICB9CiAgICAKICAgIHB1YmxpYyBvdmVycmlkZSBzdHJpbmcgVG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuICgkIkltZToge2ltZX0sIHByZXppbWU6IHtwcmV6aW1lfSwgSk1CRzoge2ptYmd9Iik7CiAgICB9CiAgICAKfQoKcHVibGljIGNsYXNzIExla2FyIDogUmFkbmlrIHsKICAgIHByaXZhdGUgaW50IGJyb2pMaWNlbmNlOwogICAgCiAgICBwdWJsaWMgaW50IEJyb2pMaWNlbmNlIHsKICAgICAgICBnZXQgeyByZXR1cm4gYnJvakxpY2VuY2U7IH0KICAgICAgICBzZXQgeyBicm9qTGljZW5jZSA9IHZhbHVlOyB9CiAgICB9CiAgICAKICAgIHB1YmxpYyBMZWthcigpIDogYmFzZSgpIHsKICAgICAgICBicm9qTGljZW5jZSA9IDA7CiAgICB9CiAgICAKICAgIHB1YmxpYyBMZWthcihzdHJpbmcgaW1lLCBzdHJpbmcgcHJlemltZSwgc3RyaW5nIGptYmcsIGludCBicm9qTGljZW5jZSkgOiBiYXNlKGltZSwgcHJlemltZSwgam1iZykgewogICAgICAgIHRoaXMuYnJvakxpY2VuY2UgPSBicm9qTGljZW5jZTsKICAgIH0KICAgIAogICAgcHVibGljIExla2FyKExla2FyIGwpIDogYmFzZShsKSB7CiAgICAgICAgYnJvakxpY2VuY2UgPSBsLmJyb2pMaWNlbmNlOwogICAgfQogICAgCiAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIFRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiBiYXNlLlRvU3RyaW5nKCkgKyAiLCBicm9qIGxpY2VuY2U6ICIgKyBicm9qTGljZW5jZTsKICAgIH0KfQoKcHVibGljIGVudW0gU3BlY2lqYWxub3N0IHsKICAgIE9QU1RBLAogICAgTkVVUk8sCiAgICBLQVJESU8KfQoKcHVibGljIGNsYXNzIEhpcnVyZyA6IExla2FyIHsKICAgIHByaXZhdGUgU3BlY2lqYWxub3N0IHNwZWNpamFsbm9zdDsKICAgIAogICAgcHVibGljIFNwZWNpamFsbm9zdCBTcGVjaWphbG5vc3QgewogICAgICAgIGdldCB7IHJldHVybiBzcGVjaWphbG5vc3Q7IH0KICAgICAgICBzZXQgeyBzcGVjaWphbG5vc3QgPSB2YWx1ZTsgfQogICAgfQogICAgCiAgICBwdWJsaWMgSGlydXJnKCkgOiBiYXNlKCkgewogICAgICAgIHNwZWNpamFsbm9zdCA9IFNwZWNpamFsbm9zdC5PUFNUQTsKICAgIH0KICAgIAogICAgcHVibGljIEhpcnVyZyhzdHJpbmcgaW1lLCBzdHJpbmcgcHJlemltZSwgc3RyaW5nIGptYmcsIGludCBicm9qTGljZW5jZSwgU3BlY2lqYWxub3N0IHNwZWNpamFsbm9zdCkgOiBiYXNlKGltZSwgcHJlemltZSwgam1iZywgYnJvakxpY2VuY2UpIHsKICAgICAgICB0aGlzLnNwZWNpamFsbm9zdCA9IHNwZWNpamFsbm9zdDsKICAgIH0KICAgIAogICAgcHVibGljIEhpcnVyZyhIaXJ1cmcgaCkgOiBiYXNlKGgpIHsKICAgICAgICBzcGVjaWphbG5vc3QgPSBoLnNwZWNpamFsbm9zdDsKICAgIH0KICAgIAogICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpIHsKICAgICAgICByZXR1cm4gYmFzZS5Ub1N0cmluZygpICsgIiwgc3BlY2lqYWxub3N0OiAiICsgc3BlY2lqYWxub3N0LlRvU3RyaW5nKCk7CiAgICB9Cn0KCgpjbGFzcyBQcm9ncmFtIHsKICAgIAogIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykgewoKCiAgICAgIFJhZG5payByID0gbmV3IFJhZG5paygiTWFya28iLCAiTWFya292aWMiLCAiMjUwNTk3NDcxMDAwMiIpOwogICAgICBMZWthciBsID0gbmV3IExla2FyKCJKb3ZhbiIsICJKb3Zhbm92aWMiLCAiMDExMDk2NjcxMzA0MiIsIDEyNTYzKTsKICAgICAgSGlydXJnIGggPSBuZXcgSGlydXJnKCJOaWtvbGEiLCAiTmlrb2xpYyIsICIxNDA0OTkwNzA1MDIwIiwgMTM0NzIsIFNwZWNpamFsbm9zdC5ORVVSTyk7CgogICAgICBDb25zb2xlLldyaXRlTGluZShyKTsKICAgICAgQ29uc29sZS5Xcml0ZUxpbmUobCk7CiAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGgpOwogIH0KfQ==