#include <iostream>
#include <string>
#include <random>
using namespace std;

const string SUBJECT[] = { // 主語
    "勇者",
    "魔導士",
    "神官",
    "召喚士",
    "忍者"
};
const int SN = sizeof(SUBJECT) / sizeof(SUBJECT[0]);

const string OBJECT[] = { // 目的語
    "スライム",
    "ゴースト",
    "ゴブリン",
    "ゾンビ",
    "ヴァンパイア",
    "トロール",
    "ドラゴン"
};
const int ON = sizeof(OBJECT) / sizeof(OBJECT[0]);

const string PREDICATE[] = { // 述語
    "を倒した！",
    "を追い払った！",
    "を仲間にした！",
    "を手なずけた！",
    "を降伏させた！",
    "を異次元に消し去った！"
};
const int PN = sizeof(PREDICATE) / sizeof(PREDICATE[0]);

random_device rd; // ランダムデバイスを用意
mt19937 rand_mt(rd()); // 乱数生成器を作成

int main() {
    while (true) { // whileで繰り返す
        if (rand_mt() % 3 == 0)
            cout << SUBJECT[rand_mt() % SN] << "は" << OBJECT[rand_mt() % ON] << "と" << OBJECT[rand_mt() % ON] << PREDICATE[rand_mt() % PN] << endl;
        else
            cout << SUBJECT[rand_mt() % SN] << "は" << OBJECT[rand_mt() % ON] << PREDICATE[rand_mt() % PN] << endl;
        cout << "Continue y/n?";
        string ans; // 入力用の変数
        cin >> ans; // 文字列を入力してansに代入
        if (ans != "y" && ans != "Y") break;
    }
}
