#include<iostream>
using namespace std;
class Vehicle{
protected:
string model;
int year;
double engineSize;
public:
Vehicle(string m, int y, double e){
model=m; year=y; engineSize=e;
}
string getModel(){
return model;
}
int getYear(){
return year;
}
double getEngineSize(){
return engineSize;
}
void display(){
cout << "Model: " << model << endl;
cout << "Year: " << year << endl;
cout << "Engine Size: " << engineSize << " L" << endl;
}
};
class Car: public Vehicle{
protected:
int trunk;
public:
Car(string m, int y, double e, int t):Vehicle(m,y,e){
trunk=t;
}
int getTrunk(){
return trunk;
}
void display(){
Vehicle::display();
cout << "Trunk Capacity: " << trunk << endl;
}
};
class Bus: public Vehicle{
protected:
int sitting, standing;
public:
Bus(int st, int sd, string m, int y, double e): Vehicle(m,y,e){
sitting=st; standing=sd;
}
int getSitting(){
return sitting;
}
int getStanding(){
return standing;
}
void display(){
Vehicle::display();
cout<<"No. of sitting passengers: "<<sitting<<endl;
cout<<"No. of standing passengers: "<<standing<<endl;
}
};
int main(){
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIFZlaGljbGV7CiAgICBwcm90ZWN0ZWQ6CiAgICBzdHJpbmcgbW9kZWw7CiAgICBpbnQgeWVhcjsKICAgIGRvdWJsZSBlbmdpbmVTaXplOwogICAgCiAgICBwdWJsaWM6CiAgICBWZWhpY2xlKHN0cmluZyBtLCBpbnQgeSwgZG91YmxlIGUpewogICAgICAgIG1vZGVsPW07IHllYXI9eTsgZW5naW5lU2l6ZT1lOwogICAgfQogICAgc3RyaW5nIGdldE1vZGVsKCl7CiAgICAgICAgcmV0dXJuIG1vZGVsOwogICAgfQogICAgaW50IGdldFllYXIoKXsKICAgICAgICByZXR1cm4geWVhcjsKICAgIH0KICAgIGRvdWJsZSBnZXRFbmdpbmVTaXplKCl7CiAgICAgICAgcmV0dXJuIGVuZ2luZVNpemU7CiAgICB9CiAgICB2b2lkIGRpc3BsYXkoKXsKICAgICAgICBjb3V0IDw8ICJNb2RlbDogIiA8PCBtb2RlbCA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgIlllYXI6ICIgPDwgeWVhciA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgIkVuZ2luZSBTaXplOiAiIDw8IGVuZ2luZVNpemUgPDwgIiBMIiA8PCBlbmRsOwogICAgfQogICAgCn07CgpjbGFzcyBDYXI6IHB1YmxpYyBWZWhpY2xlewogICAgcHJvdGVjdGVkOgogICAgaW50IHRydW5rOwogICAgCiAgICBwdWJsaWM6CiAgICBDYXIoc3RyaW5nIG0sIGludCB5LCBkb3VibGUgZSwgaW50IHQpOlZlaGljbGUobSx5LGUpewogICAgICAgIHRydW5rPXQ7CiAgICB9IAogICAgCiAgICBpbnQgZ2V0VHJ1bmsoKXsKICAgICAgICByZXR1cm4gdHJ1bms7CiAgICB9CiAgICAKICAgIHZvaWQgZGlzcGxheSgpewogICAgICAgIFZlaGljbGU6OmRpc3BsYXkoKTsKICAgICAgICBjb3V0IDw8ICJUcnVuayBDYXBhY2l0eTogIiA8PCB0cnVuayA8PCBlbmRsOwogICAgfQp9OwoKY2xhc3MgQnVzOiBwdWJsaWMgVmVoaWNsZXsKICAgIHByb3RlY3RlZDoKICAgIGludCBzaXR0aW5nLCBzdGFuZGluZzsKICAgIAogICAgcHVibGljOgogICAgQnVzKGludCBzdCwgaW50IHNkLCBzdHJpbmcgbSwgaW50IHksIGRvdWJsZSBlKTogVmVoaWNsZShtLHksZSl7CiAgICAgICAgc2l0dGluZz1zdDsgc3RhbmRpbmc9c2Q7CiAgICB9CiAgICAKICAgIGludCBnZXRTaXR0aW5nKCl7CiAgICAgICAgcmV0dXJuIHNpdHRpbmc7CiAgICB9CiAgICAKICAgIGludCBnZXRTdGFuZGluZygpewogICAgICAgIHJldHVybiBzdGFuZGluZzsKICAgIH0KICAgIAogICAgdm9pZCBkaXNwbGF5KCl7CiAgICAgICAgVmVoaWNsZTo6ZGlzcGxheSgpOwogICAgICAgIGNvdXQ8PCJOby4gb2Ygc2l0dGluZyBwYXNzZW5nZXJzOiAiPDxzaXR0aW5nPDxlbmRsOwogICAgICAgIGNvdXQ8PCJOby4gb2Ygc3RhbmRpbmcgcGFzc2VuZ2VyczogIjw8c3RhbmRpbmc8PGVuZGw7CiAgICB9Cn07CmludCBtYWluKCl7CiAgICAKICAgIHJldHVybiAwOwp9