Submission #1514056


Source Code Expand

#include <iostream>
#include <vector>
#include <queue>
#include <sstream>
#include <algorithm>
#include <bitset>
#include <limits>
#include <map>
#include <set>

using namespace std;

typedef std::numeric_limits<double> dbl;

//#define DEBUG

int main()
{
        int N, K;
        string S;
        cin >> N >> K;
        cin >> S;

        if (K == 0) {
            cout << S << endl;
            return 0;
        }

        priority_queue<char, vector<char>, greater<char>> pq;
        for (int i = 0; i < N; ++i) {
            pq.push(S[i]);
        }

        for (int matchNum = N; matchNum != 0; --matchNum) {
            priority_queue<char, vector<char>, greater<char>> cp = pq;
            string ans = "";
            int unmatchNum = 0;
            for (int i = 0; i < matchNum; ++i) {
                int c = cp.top();
                if (S[i] != c)
                    unmatchNum++;
                ans.push_back(c);
                cp.pop();
            }

            multiset<char> rest;
            for (int i = 0; i < N - matchNum; ++i) {
                char c = cp.top();
                //cout << "   " << cp.size() << " " << c << endl;
                rest.insert(c);
                cp.pop();
            }

            for (int i = matchNum; i < N; ++i) {
                char c = S[i];
                //cout << "match: " << c << endl;
                auto itr = rest.find(c);
                if (itr == rest.end()) {
                    unmatchNum++;
                    ans += "#";
                    continue;
                }
                ans.push_back(c);
                rest.erase(itr);
            }

            vector<char> bond;
            for (auto r : rest) {
                bond.push_back(r);
            }
            vector<char>::const_iterator bitr = bond.begin();
            for (auto& c : ans) {
                if (c == '#')
                    c = *(bitr++);
            }

            if (unmatchNum <= K) {
                cout << ans << endl;
                return 0;
            }
            
        }

        return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User xoke
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2170 Byte
Status WA
Exec Time 2 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 42
WA × 16
Set Name Test Cases
All hand_1_0.txt, hand_1_1.txt, hand_1_2.txt, hand_1_3.txt, hand_1_4.txt, hand_1_5.txt, hand_1_6.txt, hand_1_7.txt, hand_1_8.txt, hand_2_0.txt, hand_2_1.txt, hand_2_10.txt, hand_2_2.txt, hand_2_3.txt, hand_2_4.txt, hand_2_5.txt, hand_2_6.txt, hand_2_7.txt, hand_2_8.txt, hand_2_9.txt, hand_3_2.txt, hand_3_3.txt, hand_3_4.txt, hand_3_5.txt, hand_3_6.txt, hand_4_2.txt, hand_4_3.txt, hand_4_4.txt, hand_4_5.txt, hand_4_6.txt, random_1.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_2.txt, random_3.txt, random_4.txt, random_5.txt, random_6.txt, random_7.txt, random_8.txt, random_9.txt, sample_1.txt, sample_2.txt, sample_3.txt, sample_4.txt, small_1.txt, small_2.txt, small_3.txt, small_4.txt, small_5.txt, small_6.txt, small_7.txt, small_8.txt, small_9.txt
Case Name Status Exec Time Memory
hand_1_0.txt AC 1 ms 256 KB
hand_1_1.txt WA 1 ms 256 KB
hand_1_2.txt AC 1 ms 256 KB
hand_1_3.txt AC 1 ms 256 KB
hand_1_4.txt AC 1 ms 256 KB
hand_1_5.txt AC 1 ms 256 KB
hand_1_6.txt AC 1 ms 256 KB
hand_1_7.txt AC 1 ms 256 KB
hand_1_8.txt AC 1 ms 256 KB
hand_2_0.txt AC 1 ms 256 KB
hand_2_1.txt WA 1 ms 256 KB
hand_2_10.txt AC 1 ms 256 KB
hand_2_2.txt AC 1 ms 256 KB
hand_2_3.txt AC 1 ms 256 KB
hand_2_4.txt AC 1 ms 256 KB
hand_2_5.txt AC 1 ms 256 KB
hand_2_6.txt AC 1 ms 256 KB
hand_2_7.txt AC 1 ms 256 KB
hand_2_8.txt AC 1 ms 256 KB
hand_2_9.txt AC 1 ms 256 KB
hand_3_2.txt AC 1 ms 256 KB
hand_3_3.txt WA 1 ms 256 KB
hand_3_4.txt AC 1 ms 256 KB
hand_3_5.txt WA 1 ms 256 KB
hand_3_6.txt AC 1 ms 256 KB
hand_4_2.txt AC 1 ms 256 KB
hand_4_3.txt WA 1 ms 256 KB
hand_4_4.txt AC 1 ms 256 KB
hand_4_5.txt WA 1 ms 256 KB
hand_4_6.txt AC 1 ms 256 KB
random_1.txt WA 1 ms 256 KB
random_10.txt AC 2 ms 256 KB
random_11.txt WA 2 ms 256 KB
random_12.txt WA 2 ms 256 KB
random_13.txt WA 2 ms 256 KB
random_14.txt AC 2 ms 256 KB
random_15.txt AC 1 ms 256 KB
random_2.txt AC 1 ms 256 KB
random_3.txt AC 1 ms 256 KB
random_4.txt WA 2 ms 256 KB
random_5.txt AC 1 ms 256 KB
random_6.txt WA 2 ms 256 KB
random_7.txt AC 2 ms 256 KB
random_8.txt WA 2 ms 256 KB
random_9.txt WA 2 ms 256 KB
sample_1.txt AC 1 ms 256 KB
sample_2.txt AC 1 ms 256 KB
sample_3.txt AC 1 ms 256 KB
sample_4.txt AC 1 ms 256 KB
small_1.txt AC 1 ms 256 KB
small_2.txt AC 1 ms 256 KB
small_3.txt AC 1 ms 256 KB
small_4.txt WA 1 ms 256 KB
small_5.txt AC 1 ms 256 KB
small_6.txt AC 1 ms 256 KB
small_7.txt WA 1 ms 256 KB
small_8.txt AC 1 ms 256 KB
small_9.txt AC 1 ms 256 KB