結果

問題 No.2608 Divide into two
ユーザー AppleorangeAppleorange
提出日時 2024-01-24 14:49:47
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
WA  
実行時間 -
コード長 888 bytes
コンパイル時間 315 ms
コンパイル使用メモリ 11,776 KB
実行使用メモリ 10,112 KB
最終ジャッジ日時 2024-01-24 14:49:50
合計ジャッジ時間 2,013 ms
ジャッジサーバーID
(参考情報)
judge11 / judge15
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

# 青と赤の塗り方を探索する関数
def find_painting(N):
    # 青で塗った数の合計
    sum_blue = 0
    # 1 から N までの数を順に青と赤に割り振る
    colors = [0] * N
    for i in range(1, N + 1):
        if sum_blue + i <= (N * (N + 1)) // 2 / 2:
            colors[i - 1] = 0  # 青で塗る
            sum_blue += i
        else:
            colors[i - 1] = 1  # 赤で塗る

    # 青で塗った数の合計が赤で塗った数の合計と一致するか確認
    if sum_blue == (N * (N + 1)) // 4:
        return colors
    else:
        return None

# テストケースの数
T = int(input())
for _ in range(T):
    # 各テストケースの入力
    N = int(input())

    # 塗り方を探索
    result = find_painting(N)

    # 結果を出力
    if result is None:
        print(-1)
    else:
        print(''.join(map(str, result)))
0