結果

問題 No.3157 Nabeatsu
コンテスト
ユーザー わん
提出日時 2025-10-22 01:15:44
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 130 ms / 2,000 ms
コード長 756 bytes
コンパイル時間 474 ms
コンパイル使用メモリ 82,752 KB
実行使用メモリ 124,364 KB
最終ジャッジ日時 2025-10-22 01:15:53
合計ジャッジ時間 7,571 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 45
権限があれば一括ダウンロードができます

ソースコード

diff #

N = input()

if len(N) < 4:
  N = int(N)
  for i in range(N+1)[::-1]:
    if '3' not in str(i) and i%3!=0:
      print(i)
      exit()

ln = list(N)
def f(ln):
  L = len(ln)
  sm = 0
  for i in range(L):
    if ln[i] == '3':
      sm += 2 + 9*(L-i-1)
      ln = ln[:i]+['2']+['9']*(L-i-1)
      break
    else:
      sm += int(ln[i])
  return ln, sm

ln, sm = f(ln)
m = len(ln)
while sm%3==0:
  i = len(ln)-1
  if ln[i] != '0':
    ln[i] = str(int(ln[i])-1)
    sm -= 1
    if ln[i] == '3':
      ln, sm = f(ln)
  else:
    for j in range(m-1, -1, -1):
      if ln[j] == '0':
        ln[j] = '9'
        sm += 9
      else:
        ln[j] = str(int(ln[j])-1)
        sm -= 1
        if ln[j] == '3':
          ln, sm = f(ln)
        break
print(''.join(ln))
0