結果

問題 No.3320 yiwiwiy
コンテスト
ユーザー seekworser
提出日時 2025-10-19 21:38:11
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 2,161 bytes
コンパイル時間 381 ms
コンパイル使用メモリ 82,712 KB
実行使用メモリ 68,020 KB
最終ジャッジ日時 2025-10-31 18:56:22
合計ジャッジ時間 7,555 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 1
other RE * 73
権限があれば一括ダウンロードができます

ソースコード

diff #

from pyparsing import deque


def solve():
    y,i,w,a,b = map(int, input().split())
    # print("yiwab", y, i, w, a, b)
    ans = w * (i // 2) * (i - i // 2) * (y // 2) * (y - y // 2) * a
    iwiwi = 0
    f = []
    # print(0, ans)
    for k in range(1, w):
        m1 = (i - k) // 2
        m2 = (i - k) - m1
        # print(k, m1, m2)
        if m1 <= 0 or m2 <= 0: break
        wr = w - (k + 1)
        # print(k, m1, m2, wr)
        if len(f) < 2:
            f.append(0)
            for x in range(k+1):
                f[-1] += (m1 + x) * (m2 + k - x)
        elif m1 == m2:
            f.append(f[-2] + (k-1) * (-(k-2)) + (k-2) * (k-1) - (k-1))
            f[-1] += (m1 + k - 1) * (m1 + k - (k - 1))
            f[-1] += (m1 + k) * (m1 + k - k)
        else:
            f.append(f[-2] + (k-1) * (-(k-1)) + (k-2) * (k-1) - (k-1))
            f[-1] += (m1 + k - 1) * (m1 + k - (k - 1) + 1)
            f[-1] += (m1 + k) * (m1 + k - k + 1)
        cur = b * k + (wr * (m2 - 1) * (i - m2 + 1) + f[-1]) * (y // 2) * (y - y // 2) * a
        # print(k, cur)
        if ans < cur:
            ans = cur
            iwiwi = k
    # print(f)
    # print(ans)
    def create_s(y, i, w, iwiwi):
        s = deque()
        if iwiwi == 0:
            s.append("w" * w)
            s.appendleft("i" * (i // 2))
            s.append("i" * (i - (i // 2)))
            s.appendleft("y" * (y // 2))
            s.append("y" * (y - (y // 2)))
            return "".join(s)
        s.appendleft("i")
        i -= 1
        for x in range(iwiwi):
            if x == 0:
                s.append("wiw")
                i -= 1
                w -= 2
            else:
                s.append("iw")
                i -= 1
                w -= 1
        s.append("i")
        i -= 1
        s.append("w" * w)

        m1 = i // 2
        m2 = i - m1
        # print(s)
        # print(m1, m2)
        s.appendleft("i" * m1)
        s.append("i" * m2)
        s.appendleft("y" * (y // 2))
        s.append("y" * (y - (y // 2)))
        return "".join(s)

    s = create_s(y, i, w, iwiwi)
    print(s)
    # print("".join(s))

t = int(input())
for _ in range(t):
    solve()
0