結果

問題 No.3157 Nabeatsu
コンテスト
ユーザー Rumain831
提出日時 2026-08-25 07:09:39
言語 C++23(gcc16)
(gcc 16.1.0 + boost 1.92.0)
コンパイル:
g++-16 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 45 ms / 2,000 ms
+ 442µs
コード長 795 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,047 ms
コンパイル使用メモリ 177,208 KB
実行使用メモリ 8,356 KB
最終ジャッジ日時 2026-08-25 07:09:49
合計ジャッジ時間 6,198 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 45
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
using ll = long long;

int main(void){
  string s; cin >> s;
  int sum=0, n=s.size();
  vector<int> d(n);
  for(int i=0; i<n; i++) d[i]=s[i]-'0';
  while(1){
    int pos=-1;
    for(int i=0; i<n; i++){
      if(d[i]==3){
        pos=i; break;
      }
    }
    if(pos==-1){
      int sum=0;
      for(auto&x:d) sum+=x;
      if(sum%3) break;
      for(int i=n-1; i>=0; i--){
        if(d[i]<=0){
          d[i+1]--, d[i]+=10;
        }
        else{
          d[i]--;
          break;
        }
      }
    }
    else{
      d[pos]=2;
      for(int i=pos+1; i<n; i++) d[i]=9;
    }
  }
  int z=0;
  for(int i=0; i<n; i++)if(d[i]){
    z=i; break;
  }
  for(int i=z; i<n; i++) cout << d[i]; cout << endl;
  return 0; 
}
0