結果
問題 | No.2775 Nuisance Balls |
ユーザー |
|
提出日時 | 2024-06-07 21:36:40 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 49 ms / 2,000 ms |
コード長 | 1,191 bytes |
コンパイル時間 | 201 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 54,016 KB |
最終ジャッジ日時 | 2024-12-26 07:19:22 |
合計ジャッジ時間 | 2,039 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
# ゆーさんはN個のボールを持っている # ボールの個数を記号で表すことを考える # 記号と個数の対応は以下の通り # .: ボール1個分を表す # o: ボール6個分を表す # R: ボール30個分を表す # S: ボール180個分を表す # M: ボール360個分を表す # C: ボール720個分を表す # これらの記号を複数用いて並べた文字列のうち、 # 各記号が表すボールの個数の総和がNと一致するものとして文字列の長さが最小になるものを # 記号が表すボールの個数が多い順になるように並べ替えて出力せよ # # 1 <= N <= 4320 # Nは整数 import sys import itertools import time from math import radians, sin, cos, tan, sqrt from collections import deque def input(): return sys.stdin.readline().replace('\n','') sys.setrecursionlimit(1000000) md1 = 998244353 md2 = 10 ** 9 + 7 ballsymbol = [('C', 720), ('M', 360), ('S', 180), ('R', 30), ('o', 6), ('.', 1)] N = int(input()) now = N ans = [] for i in range(0, 6): for j in range(0, now//ballsymbol[i][1]): ans.append(ballsymbol[i][0]) now %= ballsymbol[i][1] print(''.join(ans))