#include <iostream>
#include <vector>
using namespace std;
class Flight;
class Time {
private :
int hour;
int minute;
public :
Time(int hour,int minute){
this->hour = hour;
this->minute = minute;
};
int getHour(){
return hour;
}
int getMinute(){
return minute;
}
};
class Passenger{
private:
string name;
int age;
public :
Passenger(string name , int age){
this->name = name;
this->age = age;
}
void printDetails(){
cout << "Name: " << name << "\t";
cout << "Age: " << age <<"\t";
}
friend void addPassenger(std::vector<Passenger> const& plist, Flight& f);
friend Flight;
};
class Flight {
private :
string id;
string destination;
Time *depart;
Time *arrival;
vector<Passenger> passengerList;
public :
Flight(string id, string destination, Time *t, Time *a){
this->id = id;
this->destination = destination;
depart = t;
arrival = a;
id = 3;
};
void printInfo(){
cout<< "Flight Number : " << id << endl;
cout<< "Destination : " << destination << endl;
cout<< "Desparture : " << depart->getHour() << ":" << depart->getMinute()<< endl;
cout<< "Arrival : " << arrival->getHour() << ":" << arrival->getMinute() << endl;
}
void printList(){
for(auto& p : passengerList ){
cout << p.name << endl;
}
}
friend class Passenger;
friend void addPassenger(std::vector<Passenger> const& plist, Flight& f);
};
void addPassenger(std::vector<Passenger> const& plist, Flight& f)
{
for(auto& p : plist ){
f.passengerList.push_back(p);
}
}
int main(){
int num_passenger;
int temp_age;
string temp_name;
vector<int> passenger_age;
vector<string> passenger_name;
Time t(2,4);
Time t2(2,3);
Flight ff("3","4",&t,&t2);
cout<< "Enter the number of passenger" << endl;
cin>> num_passenger;
cout<< endl;
std::vector<Passenger> pas;
for(int i=0;i < num_passenger; i++){
cout<< "Enter the name of adult "<< i+1 << endl;
cin>> temp_name;
passenger_name.push_back(temp_name);
cout<< "Enter the age of adult "<< i+1 << endl;
cin>> temp_age;
passenger_age.push_back(temp_age);
}
for(int p=0; p < num_passenger; p++){
pas.push_back(Passenger(passenger_name[p],passenger_age[p]));
}
addPassenger(pas, ff);
ff.printList();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgRmxpZ2h0OwoKY2xhc3MgVGltZSB7CiAgIHByaXZhdGUgOgogICAgICBpbnQgaG91cjsKICAgICAgaW50IG1pbnV0ZTsKICAgcHVibGljIDoKICAgICAgVGltZShpbnQgaG91cixpbnQgbWludXRlKXsKCiAgICAgICAgIHRoaXMtPmhvdXIgPSBob3VyOwogICAgICAgICB0aGlzLT5taW51dGUgPSBtaW51dGU7CgogICAgICB9OwogICAgICBpbnQgZ2V0SG91cigpewogICAgICAgICByZXR1cm4gaG91cjsKICAgICAgfQogICAgICBpbnQgZ2V0TWludXRlKCl7CiAgICAgICAgIHJldHVybiBtaW51dGU7CiAgICAgIH0KfTsKCmNsYXNzIFBhc3NlbmdlcnsKICAgcHJpdmF0ZToKICAgICAgc3RyaW5nIG5hbWU7CiAgICAgIGludCBhZ2U7CiAgIHB1YmxpYyA6CiAgICAgIFBhc3NlbmdlcihzdHJpbmcgbmFtZSAsIGludCBhZ2UpewoKICAgICAgICAgdGhpcy0+bmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMtPmFnZSA9IGFnZTsKCiAgICAgIH0KICAgICAgdm9pZCBwcmludERldGFpbHMoKXsKCiAgICAgICAgIGNvdXQgPDwgIk5hbWU6ICIgPDwgbmFtZSA8PCAiXHQiOyAgIAogICAgICAgICBjb3V0IDw8ICJBZ2U6ICIgPDwgYWdlIDw8Ilx0IjsgICAgICAgICAgICAgIAogICAgICB9CiAgICAgIGZyaWVuZCB2b2lkIGFkZFBhc3NlbmdlcihzdGQ6OnZlY3RvcjxQYXNzZW5nZXI+IGNvbnN0JiBwbGlzdCwgRmxpZ2h0JiBmKTsKICAgICAgZnJpZW5kIEZsaWdodDsKfTsKCmNsYXNzIEZsaWdodCB7CgogICBwcml2YXRlIDoKICAgICAgc3RyaW5nIGlkOwogICAgICBzdHJpbmcgZGVzdGluYXRpb247CiAgICAgIFRpbWUgKmRlcGFydDsKICAgICAgVGltZSAqYXJyaXZhbDsKICAgICAgdmVjdG9yPFBhc3Nlbmdlcj4gcGFzc2VuZ2VyTGlzdDsKCiAgIHB1YmxpYyA6CiAgICAgIEZsaWdodChzdHJpbmcgaWQsIHN0cmluZyBkZXN0aW5hdGlvbiwgVGltZSAqdCwgVGltZSAqYSl7CgogICAgICAgICB0aGlzLT5pZCA9IGlkOwogICAgICAgICB0aGlzLT5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uOwogICAgICAgICBkZXBhcnQgPSB0OwogICAgICAgICBhcnJpdmFsID0gYTsKICAgICAgICAgaWQgPSAzOwogICAgICB9OwoKICAgICAgdm9pZCBwcmludEluZm8oKXsKICAgICAgICAgY291dDw8ICJGbGlnaHQgTnVtYmVyIDogIiA8PCBpZCA8PCBlbmRsOwogICAgICAgICBjb3V0PDwgIkRlc3RpbmF0aW9uIDogIiA8PCBkZXN0aW5hdGlvbiA8PCBlbmRsOwogICAgICAgICBjb3V0PDwgIkRlc3BhcnR1cmUgOiAiIDw8IGRlcGFydC0+Z2V0SG91cigpIDw8ICI6IiA8PCBkZXBhcnQtPmdldE1pbnV0ZSgpPDwgZW5kbDsKICAgICAgICAgY291dDw8ICJBcnJpdmFsIDogIiA8PCBhcnJpdmFsLT5nZXRIb3VyKCkgPDwgIjoiIDw8IGFycml2YWwtPmdldE1pbnV0ZSgpIDw8IGVuZGw7CiAgICAgIH0KCiAgICAgIHZvaWQgcHJpbnRMaXN0KCl7CiAgICAgICAgIGZvcihhdXRvJiBwIDogcGFzc2VuZ2VyTGlzdCApewogICAgICAgICAgICBjb3V0IDw8IHAubmFtZSA8PCBlbmRsOwogICAgICAgICB9CiAgICAgIH0KCiAgICAgIGZyaWVuZCBjbGFzcyBQYXNzZW5nZXI7CiAgICAgIGZyaWVuZCB2b2lkIGFkZFBhc3NlbmdlcihzdGQ6OnZlY3RvcjxQYXNzZW5nZXI+IGNvbnN0JiBwbGlzdCwgRmxpZ2h0JiBmKTsKfTsKCnZvaWQgYWRkUGFzc2VuZ2VyKHN0ZDo6dmVjdG9yPFBhc3Nlbmdlcj4gY29uc3QmIHBsaXN0LCBGbGlnaHQmIGYpCnsKICAgZm9yKGF1dG8mIHAgOiBwbGlzdCApewogICAgICBmLnBhc3Nlbmdlckxpc3QucHVzaF9iYWNrKHApOwogICB9Cn0KCmludCBtYWluKCl7CgogICBpbnQgbnVtX3Bhc3NlbmdlcjsKICAgaW50IHRlbXBfYWdlOwogICBzdHJpbmcgdGVtcF9uYW1lOwoKICAgdmVjdG9yPGludD4gcGFzc2VuZ2VyX2FnZTsKICAgdmVjdG9yPHN0cmluZz4gcGFzc2VuZ2VyX25hbWU7CgogICBUaW1lIHQoMiw0KTsKICAgVGltZSB0MigyLDMpOwogICBGbGlnaHQgZmYoIjMiLCI0IiwmdCwmdDIpOwoKICAgY291dDw8ICJFbnRlciB0aGUgbnVtYmVyIG9mIHBhc3NlbmdlciIgPDwgZW5kbDsKICAgY2luPj4gbnVtX3Bhc3NlbmdlcjsKICAgY291dDw8IGVuZGw7CgogICBzdGQ6OnZlY3RvcjxQYXNzZW5nZXI+IHBhczsKCiAgIGZvcihpbnQgaT0wO2kgPCBudW1fcGFzc2VuZ2VyOyBpKyspewoKICAgICAgY291dDw8ICJFbnRlciB0aGUgbmFtZSBvZiBhZHVsdCAiPDwgaSsxIDw8IGVuZGw7CiAgICAgIGNpbj4+IHRlbXBfbmFtZTsKICAgICAgcGFzc2VuZ2VyX25hbWUucHVzaF9iYWNrKHRlbXBfbmFtZSk7CiAgICAgIGNvdXQ8PCAiRW50ZXIgdGhlIGFnZSBvZiBhZHVsdCAiPDwgaSsxIDw8IGVuZGw7CiAgICAgIGNpbj4+IHRlbXBfYWdlOwogICAgICBwYXNzZW5nZXJfYWdlLnB1c2hfYmFjayh0ZW1wX2FnZSk7CgoKICAgfQoKICAgZm9yKGludCBwPTA7IHAgPCBudW1fcGFzc2VuZ2VyOyBwKyspewogICAgICBwYXMucHVzaF9iYWNrKFBhc3NlbmdlcihwYXNzZW5nZXJfbmFtZVtwXSxwYXNzZW5nZXJfYWdlW3BdKSk7CiAgIH0KCiAgIGFkZFBhc3NlbmdlcihwYXMsIGZmKTsKICAgZmYucHJpbnRMaXN0KCk7CgogICByZXR1cm4gMDsKfQo=