結果
問題 |
No.3049 Contest Coordinator
|
ユーザー |
|
提出日時 | 2025-01-18 15:57:09 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 396 ms / 2,000 ms |
コード長 | 618 bytes |
コンパイル時間 | 392 ms |
コンパイル使用メモリ | 82,372 KB |
実行使用メモリ | 216,664 KB |
最終ジャッジ日時 | 2025-01-18 15:57:23 |
合計ジャッジ時間 | 13,232 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 58 |
ソースコード
# correct n, t, x, y = map(int, input().split()) d = list(map(int, input().split())) d.sort() group_sizes: list[int] = [] for i in range(n): if i == 0 or d[i] - d[i - 1] > t: group_sizes.append(0) group_sizes[-1] += 1 group_sizes.sort(reverse=True) group_num_imos: list[int] = [0] * (n + 1) # |x....|x...|x..| x: グループ数が増加する点 size_sum = 0 for size in group_sizes: group_num_imos[size_sum + 1] += 1 size_sum += size for k in range(1, n + 1): group_num_imos[k] += group_num_imos[k - 1] ans = [min(x, y) * (group_num_imos[k] - 1) for k in range(1, n + 1)] print(*ans)