#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct author{
string name;
string surname;
author(const string& name, const string& surname):name(name),surname(surname){}
};
struct book{
author auth;
string title;
int releaseYear;
int releaseNo;
book(const string& authorName, const string& authorSurname, const string& title, int year, int no)
:auth(author(authorName, authorSurname)),title(title),releaseYear(year),releaseNo(no){}
};
class library{
private:
vector<book> books;
public:
void add(const book& book){ this->books.push_back(book); }
void print(){
for(unsigned i=0;i<this->books.size();++i){
cout << i + 1 << ". " << this->books[i].title << endl
<< "Author: " << this->books[i].auth.name << " " << this->books[i].auth.surname << endl
<< "Release date: " << this->books[i].releaseYear << endl
<< "Release no: " << this->books[i].releaseNo << endl << endl;
}
}
};
int main()
{
library lib;
lib.add(book("Adam", "Mickiewicz", "Pan Tadeusz", 1834, 12));
lib.add(book("Boleslaw", "Prus", "Lalka", 1887, 3));
lib.print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnN0cnVjdCBhdXRob3J7CglzdHJpbmcgbmFtZTsKCXN0cmluZyBzdXJuYW1lOwoJYXV0aG9yKGNvbnN0IHN0cmluZyYgbmFtZSwgY29uc3Qgc3RyaW5nJiBzdXJuYW1lKTpuYW1lKG5hbWUpLHN1cm5hbWUoc3VybmFtZSl7fQp9OwoKc3RydWN0IGJvb2t7CglhdXRob3IgYXV0aDsKCXN0cmluZyB0aXRsZTsKCWludCByZWxlYXNlWWVhcjsKCWludCByZWxlYXNlTm87Cglib29rKGNvbnN0IHN0cmluZyYgYXV0aG9yTmFtZSwgY29uc3Qgc3RyaW5nJiBhdXRob3JTdXJuYW1lLCBjb25zdCBzdHJpbmcmIHRpdGxlLCBpbnQgeWVhciwgaW50IG5vKQoJCTphdXRoKGF1dGhvcihhdXRob3JOYW1lLCBhdXRob3JTdXJuYW1lKSksdGl0bGUodGl0bGUpLHJlbGVhc2VZZWFyKHllYXIpLHJlbGVhc2VObyhubyl7fQp9OwoKY2xhc3MgbGlicmFyeXsKcHJpdmF0ZToKCXZlY3Rvcjxib29rPiBib29rczsKCnB1YmxpYzoKCXZvaWQgYWRkKGNvbnN0IGJvb2smIGJvb2speyB0aGlzLT5ib29rcy5wdXNoX2JhY2soYm9vayk7IH0KCXZvaWQgcHJpbnQoKXsKCQlmb3IodW5zaWduZWQgaT0wO2k8dGhpcy0+Ym9va3Muc2l6ZSgpOysraSl7CgkJCWNvdXQgPDwgaSArIDEgPDwgIi4gIiA8PCAgdGhpcy0+Ym9va3NbaV0udGl0bGUgPDwgZW5kbAoJCQkJIDw8ICJBdXRob3I6ICIgPDwgIHRoaXMtPmJvb2tzW2ldLmF1dGgubmFtZSA8PCAiICIgPDwgdGhpcy0+Ym9va3NbaV0uYXV0aC5zdXJuYW1lIDw8IGVuZGwKCQkJCSA8PCAiUmVsZWFzZSBkYXRlOiAiIDw8IHRoaXMtPmJvb2tzW2ldLnJlbGVhc2VZZWFyIDw8IGVuZGwKCQkJCSA8PCAiUmVsZWFzZSBubzogIiA8PCB0aGlzLT5ib29rc1tpXS5yZWxlYXNlTm8gPDwgZW5kbCA8PCBlbmRsOwoJCX0KCX0KfTsKCmludCBtYWluKCkKewoJbGlicmFyeSBsaWI7CglsaWIuYWRkKGJvb2soIkFkYW0iLCAiTWlja2lld2ljeiIsICJQYW4gVGFkZXVzeiIsIDE4MzQsIDEyKSk7CglsaWIuYWRkKGJvb2soIkJvbGVzbGF3IiwgIlBydXMiLCAiTGFsa2EiLCAxODg3LCAzKSk7CglsaWIucHJpbnQoKTsKICAgIHJldHVybiAwOwp9