#include <iostream>
#include <string>
class catalog_books
{
private:
std::string book_author;
std::string book_name;
int year;
std::string group;
public:
catalog_books() : book_author(), book_name(), year(), group() {};
catalog_books(std::string book_autor_, std::string book_name_, int year_, std::string group_) :
book_author(book_autor_), book_name(book_name_), year(year_), group(group_) {};
std::string Getbook_author() const
{
return book_author;
}
std::string Getbook_name() const
{
return book_name;
}
int Getbook_year() const
{
return year;
}
std::string Getbook_group() const
{
return group;
}
};
std::ostream & operator << (std::ostream &out, const catalog_books & t)
{
out << t.Getbook_author() << " ";
out << t.Getbook_name() << " ";
out << t.Getbook_year() << " ";
out << t.Getbook_group() << '\n';
return out;
}
int main()
{
const size_t N = 3;
catalog_books books[N];
books[0] = { "Сенкевич", "Потоп", 1978, "Художественная"};
books[1] = { "Ландау", "Механика", 1989, "Учебная" };
books[2] = { "Дойль", "Сумчатые", 1990, "Справочная" };
for (size_t i = 0; i < N; ++i)
{
std::cout << books[i];
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgogCmNsYXNzIGNhdGFsb2dfYm9va3MKewpwcml2YXRlOgogICAgc3RkOjpzdHJpbmcgICAgIGJvb2tfYXV0aG9yOwogICAgc3RkOjpzdHJpbmcgICAgIGJvb2tfbmFtZTsKICAgIGludCAgICAgICAgICAgICB5ZWFyOwogICAgc3RkOjpzdHJpbmcgICAgIGdyb3VwOwogCnB1YmxpYzoKICAgIGNhdGFsb2dfYm9va3MoKSA6IGJvb2tfYXV0aG9yKCksIGJvb2tfbmFtZSgpLCB5ZWFyKCksIGdyb3VwKCkge307CiAKICAgIGNhdGFsb2dfYm9va3Moc3RkOjpzdHJpbmcgYm9va19hdXRvcl8sIHN0ZDo6c3RyaW5nIGJvb2tfbmFtZV8sIGludCB5ZWFyXywgc3RkOjpzdHJpbmcgZ3JvdXBfKSA6CiAgICAgICAgYm9va19hdXRob3IoYm9va19hdXRvcl8pLCBib29rX25hbWUoYm9va19uYW1lXyksIHllYXIoeWVhcl8pLCBncm91cChncm91cF8pIHt9OwogCiAgICBzdGQ6OnN0cmluZyBHZXRib29rX2F1dGhvcigpIGNvbnN0CiAgICB7CiAgICAgICAgcmV0dXJuIGJvb2tfYXV0aG9yOwogICAgfQogCiAgICBzdGQ6OnN0cmluZyBHZXRib29rX25hbWUoKSBjb25zdAogICAgewogICAgICAgIHJldHVybiBib29rX25hbWU7CiAgICB9CiAKICAgIGludCBHZXRib29rX3llYXIoKSBjb25zdAogICAgewogICAgICAgIHJldHVybiB5ZWFyOwogICAgfQogCiAgICBzdGQ6OnN0cmluZyBHZXRib29rX2dyb3VwKCkgY29uc3QKICAgIHsKICAgICAgICByZXR1cm4gZ3JvdXA7CiAgICB9CiAKfTsKIAogICAgIHN0ZDo6b3N0cmVhbSAmIG9wZXJhdG9yIDw8IChzdGQ6Om9zdHJlYW0gJm91dCwgY29uc3QgY2F0YWxvZ19ib29rcyAmIHQpCiAgICAgewogICAgICAgIG91dCA8PCB0LkdldGJvb2tfYXV0aG9yKCkgPDwgIiAgICI7CiAgICAgICAgb3V0IDw8IHQuR2V0Ym9va19uYW1lKCkgPDwgIiAgICI7CiAgICAgICAgb3V0IDw8IHQuR2V0Ym9va195ZWFyKCkgPDwgIiAgICI7CiAgICAgICAgb3V0IDw8IHQuR2V0Ym9va19ncm91cCgpIDw8ICdcbic7CiAgICAgICAgcmV0dXJuIG91dDsKICAgIH0KIAogCmludCBtYWluKCkKewogICAgY29uc3Qgc2l6ZV90IE4gPSAzOwogCgogICAgCiAgICBjYXRhbG9nX2Jvb2tzIGJvb2tzW05dOwogCiAgICBib29rc1swXSA9IHsgItCh0LXQvdC60LXQstC40YciLCAi0J/QvtGC0L7QvyIsIDE5NzgsICLQpdGD0LTQvtC20LXRgdGC0LLQtdC90L3QsNGPIn07CiAgICBib29rc1sxXSA9IHsgItCb0LDQvdC00LDRgyIsICLQnNC10YXQsNC90LjQutCwIiwgMTk4OSwgItCj0YfQtdCx0L3QsNGPIiB9OwogICAgYm9va3NbMl0gPSB7ICLQlNC+0LnQu9GMIiwgItCh0YPQvNGH0LDRgtGL0LUiLCAxOTkwLCAi0KHQv9GA0LDQstC+0YfQvdCw0Y8iIH07CiAKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTjsgKytpKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCBib29rc1tpXTsKICAgIH0KIAp9