結果
問題 | No.2593 Reorder and Mod 120 |
ユーザー |
|
提出日時 | 2024-01-05 20:05:10 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 56 ms / 2,000 ms |
コード長 | 1,366 bytes |
コンパイル時間 | 165 ms |
コンパイル使用メモリ | 82,460 KB |
実行使用メモリ | 70,820 KB |
最終ジャッジ日時 | 2024-09-27 19:09:38 |
合計ジャッジ時間 | 2,418 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 26 |
ソースコード
def main(): N = int(input()) S = input() if N >= 3: array = [0] * 10 for s in S: array[int(s)] += 1 r_set = set() for i1 in range(1, 10): for i2 in range(1, 10): for i3 in range(1, 10): b_array = [0] * 10 b_array[i1] += 1 b_array[i2] += 1 b_array[i3] += 1 is_ok = True for j in range(10): if b_array[j] > array[j]: is_ok = False break if is_ok: b = i1 * 100 + i2 * 10 + i3 b %= 120 for j in range(1, 10): c = array[j] - b_array[j] d = (40 * j) % 120 d *= c d %= 120 b += d b %= 120 r_set.add(b) print(len(r_set)) else: # N <= 2 以下 if N == 1: print(1) else: r_set = set() r_set.add(int(S)) r_set.add(int(S[1]) * 10 + int(S[0])) print(len(r_set)) if __name__ == "__main__": main()