結果

問題 No.3157 Nabeatsu
ユーザー VvyLw
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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;
}
0