結果
| 問題 |
No.2608 Divide into two
|
| コンテスト | |
| ユーザー |
Appleorange
|
| 提出日時 | 2024-01-24 14:49:47 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 888 bytes |
| コンパイル時間 | 410 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-09-28 07:06:43 |
| 合計ジャッジ時間 | 1,304 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 1 |
| other | WA * 2 |
ソースコード
# 青と赤の塗り方を探索する関数
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)))
Appleorange