結果
問題 |
No.3157 Nabeatsu
|
ユーザー |
|
提出日時 | 2025-05-29 13:22:01 |
言語 | D (dmd 2.109.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 775 bytes |
コンパイル時間 | 1,259 ms |
コンパイル使用メモリ | 158,920 KB |
実行使用メモリ | 11,168 KB |
最終ジャッジ日時 | 2025-05-29 13:22:09 |
合計ジャッジ時間 | 4,026 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 WA * 2 |
ソースコード
import std; void main() { auto n = readln.chomp.dup; const len = n.length; const m = untriplize(n); int id = -1; foreach(i, c; m) { if(c == '3') { id = cast(int)i; break; } } if(id == -1 && !isNabeatsu(m)) { writeln(m); return; } const s = m[0..id] ~ "2" ~ "9".replicate(len - id - 1); writeln(untriplize(s)); } char[] untriplize(const char[] n) { int p = 0; foreach(c; n) { const m = c - '0'; p += m; } const d = ((((n[$ - 1] - '0') - (p % 3 == 0)) + 10) % 10) + '0'; return (n[0..$ - 1] ~ d).dup; } bool isNabeatsu(const char[] s) { bool inc = false; int p = 0; foreach(c; s) { inc |= c == '3'; p += c - '0'; } return inc || p % 3 == 0; }