結果
| 問題 | No.3658 Darumaka Number 2 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-08-30 15:12:05 |
| 言語 | C++23 (gcc 15.3.0 + boost 1.92.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 2,000 ms |
| + 931µs | |
| コード長 | 1,031 bytes |
| 記録 | |
| コンパイル時間 | 2,201 ms |
| コンパイル使用メモリ | 333,224 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2026-08-30 15:12:10 |
| 合計ジャッジ時間 | 4,752 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 45 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, n) for(int i = 0; i < (int)(n); ++i)
int solve(void) {
string N;
cin >> N;
const int L = N.size();
string S1(L, '4');
if(N < S1) {
string ans(L - 1, '5');
cout << ans << "\n";
return 0;
}
string S2(L, '5');
if(S2 <= N) {
cout << S2 << "\n";
return 0;
}
rep(i, L) {
if(N[i] == '4' or N[i] == '5') continue;
string ans = N;
for(int j = i; j < L; ++j) ans[j] = '5';
if(N[i] < '4') {
for(int j = i - 1; j >= 0; --j) {
if(ans[j] == '4') ans[j] = '5';
else if(ans[j] == '5') {ans[j] = '4'; break;}
}
}
cout << ans << "\n";
return 0;
}
cout << N << "\n";
return 0;
}
signed main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int Testcases = 1;
//cin >> Testcases;
while(Testcases--) solve();
return 0;
}