#include <iostream>
#include <cstring>
using namespace std;
class Genre {
struct Genres {
string name;
string description;
};
using pGenres = Genres*;
int index = 0;
public:
pGenres* genres = nullptr;
Genre() {}
~Genre() {
if (index == 0) return;
for(int i = 0; i<index; i++){
delete genres[i];
}
delete[] genres;
}
void addGenre(string name, string desc){
// string good_name = this->goodLetters(name);
string good_name = name;
auto new_genres = new pGenres[index+1];
if (genres){
memcpy(new_genres, genres, index * sizeof(pGenres));
}
new_genres[index] = new Genres;
new_genres[index]->name = good_name;
new_genres[index]->description = desc;
if (genres){
delete[] genres;
}
genres = new_genres;
index++;
}
void print(){
cout << "print:" << endl;
for(int i=0; i<index; i++){
cout << i << " :: " << genres[i]->name << " :: " << genres[i]->description << endl;
}
}
};
int main() {
// your code goes here
Genre genre;
genre.addGenre("Name1", "Desc1");
genre.addGenre("Name2", "Desc2");
genre.print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEdlbnJlIHsKICAgIHN0cnVjdCBHZW5yZXMgewogICAgICAgIHN0cmluZyBuYW1lOwogICAgICAgIHN0cmluZyBkZXNjcmlwdGlvbjsKICAgIH07CiAgICAKICAgIHVzaW5nIHBHZW5yZXMgPSBHZW5yZXMqOwogICAgCiAgICBpbnQgaW5kZXggPSAwOwpwdWJsaWM6CiAgICBwR2VucmVzKiBnZW5yZXMgPSBudWxscHRyOwogICAgCiAgICBHZW5yZSgpIHt9CiAgICB+R2VucmUoKSB7IAogICAgCWlmIChpbmRleCA9PSAwKSByZXR1cm47CiAgICAJCgkJZm9yKGludCBpID0gMDsgaTxpbmRleDsgaSsrKXsKCQkJZGVsZXRlIGdlbnJlc1tpXTsKCQl9CgkJZGVsZXRlW10gZ2VucmVzOwogICAgfQoJdm9pZCBhZGRHZW5yZShzdHJpbmcgbmFtZSwgc3RyaW5nIGRlc2MpewoJCS8vIHN0cmluZyBnb29kX25hbWUgPSB0aGlzLT5nb29kTGV0dGVycyhuYW1lKTsKCQlzdHJpbmcgZ29vZF9uYW1lID0gbmFtZTsKCQkKCSAgICBhdXRvIG5ld19nZW5yZXMgPSBuZXcgcEdlbnJlc1tpbmRleCsxXTsKCSAgICBpZiAoZ2VucmVzKXsKCSAgICAJbWVtY3B5KG5ld19nZW5yZXMsIGdlbnJlcywgaW5kZXggKiBzaXplb2YocEdlbnJlcykpOwoJICAgIH0KCgkgICAgbmV3X2dlbnJlc1tpbmRleF0gPSBuZXcgR2VucmVzOwoJICAgIG5ld19nZW5yZXNbaW5kZXhdLT5uYW1lID0gZ29vZF9uYW1lOwoJICAgIG5ld19nZW5yZXNbaW5kZXhdLT5kZXNjcmlwdGlvbiA9IGRlc2M7CgoJICAgIGlmIChnZW5yZXMpewoJICAgIAlkZWxldGVbXSBnZW5yZXM7CQoJICAgIH0gCgkgICAgCgkgICAgZ2VucmVzID0gbmV3X2dlbnJlczsKCSAgICBpbmRleCsrOwoJfQoJdm9pZCBwcmludCgpewoJCWNvdXQgPDwgInByaW50OiIgPDwgZW5kbDsKCQlmb3IoaW50IGk9MDsgaTxpbmRleDsgaSsrKXsKCQkJY291dCA8PCBpIDw8ICIgOjogIiA8PCBnZW5yZXNbaV0tPm5hbWUgPDwgIiA6OiAiIDw8ICBnZW5yZXNbaV0tPmRlc2NyaXB0aW9uIDw8IGVuZGw7CgkJfQoJfQp9OwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglHZW5yZSBnZW5yZTsKCWdlbnJlLmFkZEdlbnJlKCJOYW1lMSIsICJEZXNjMSIpOwoJZ2VucmUuYWRkR2VucmUoIk5hbWUyIiwgIkRlc2MyIik7CglnZW5yZS5wcmludCgpOwoJcmV0dXJuIDA7Cn0=