結果

問題 No.256 桁の数字を入れ替え (2)
ユーザー ry0u_ydry0u_yd
提出日時 2015-08-28 21:25:40
言語 C++11
(gcc 11.4.0)
結果
TLE  
実行時間 -
コード長 905 bytes
コンパイル時間 542 ms
コンパイル使用メモリ 67,612 KB
実行使用メモリ 10,624 KB
最終ジャッジ日時 2024-07-18 15:08:34
合計ジャッジ時間 3,901 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
10,624 KB
testcase_01 AC 2 ms
5,376 KB
testcase_02 TLE -
testcase_03 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <map>
#include <set>

#define REP(i,k,n) for(int i=k;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define INF 1<<30
#define pb push_back
#define mp make_pair

using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int main() {
    string s;
    cin >> s;

    int id = 0;
    rep(i,s.size()) {
        if(s[i] == '9') continue;

        id = i;
        break;
    }

    while(true) {
        if(id == s.size()-1) break;

        char c = s[id+1],idx = id+1;
        REP(i,id+1,s.size()) {
            if(c <= s[i]) {
                c = s[i];
                idx = i;
            }
        }

        if(s[id] >= c) {
            id++;
            continue;
        } else {
            swap(s[id],s[idx]);
        }
    }

    cout << s << endl;

    return 0;
}
0