#include using namespace std; using ll = long long; // yiwiy と iwiwi の両方を考慮して魅力度を最大化する int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll Y, I, W, P, Q; cin >> Y >> I >> W >> P >> Q; // yiwiy の個数は min(Y/2, I/2, W) // iwiwi の個数は min(I/3, W/2) // 残り文字の使い方を考慮して魅力度を最大化する ll best_value = -1; string best_str = ""; // yiwiy を a 回、iwiwi を b 回作ると仮定して探索 for (ll a = 0; a <= min({Y / 2, I / 2, W}); a++) { for (ll b = 0; b <= min({I / 3, W / 2}); b++) { if (2 * a + 0 > Y) continue; if (2 * a + 3 * b > I) continue; if (a + 2 * b > W) continue; ll remY = Y - 2 * a; ll remI = I - 2 * a - 3 * b; ll remW = W - a - 2 * b; ll score = a * P + b * Q; if (score > best_value) { best_value = score; string s = ""; // yiwiy を a 回追加 for (int i = 0; i < a; i++) s += "yiwiy"; // iwiwi を b 回追加 for (int i = 0; i < b; i++) s += "iwiwi"; // 残りを全部適当に追加 s += string(remY, 'y'); s += string(remI, 'i'); s += string(remW, 'w'); best_str = s; } } } cout << best_str << "\n"; }