Submission #1215232


Source Code Expand

#include "bits/stdc++.h"

using namespace std;
#ifndef _DEBUG
#define main_ main
#endif
#define FOR(i,s,e) for (int i = int(s); i != int(e); i++)

template <typename T>
using keyVal = pair<string, T>;
template<typename T>
bool val_greater(const keyVal<T>& left, const keyVal<T>& right) {
	return left.second > right.second;
}


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

	// histgram
	map<char, int> hs;
	for (char c = 'a'; c <= 'z'; c++) {
		hs[c] = 0;
	}
	for (char c : S) {
		hs[c]++;
	}

	string t = "";
	map<char, int> ht(hs);

	string asc = S;
	sort(asc.begin(), asc.end());

	int changeable = K;

	for (int i = 0; i < N; i++) {
		for (int j = 0; j < asc.size(); j++) {
			// attempt asc[j] at "i"
			hs[S[i]]--;
			ht[asc[j]]--;

			int cg = (S[i] == asc[j]) ? changeable : changeable - 1;

			int unusedCharNum = 0;
			for (char c = 'a'; c <= 'z'; c++) {
				unusedCharNum += min(hs[c], ht[c]);
			}

			int unfixedLen = N - 1 - i;

			// accept asc[j]
			if (unfixedLen - unusedCharNum <= cg) {
				t += asc[j];
				asc.erase(j,1);
				changeable = cg;
				break;
			}

			// reject asc[j] and undo
			hs[S[i]]++;
			ht[asc[j]]++;
		}
	}

	cout << t << endl;

	return 0;
}

Submission Info

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

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 58
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 AC 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 AC 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 AC 1 ms 256 KB
hand_3_4.txt AC 1 ms 256 KB
hand_3_5.txt AC 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 AC 1 ms 256 KB
hand_4_4.txt AC 1 ms 256 KB
hand_4_5.txt AC 1 ms 256 KB
hand_4_6.txt AC 1 ms 256 KB
random_1.txt AC 1 ms 256 KB
random_10.txt AC 2 ms 256 KB
random_11.txt AC 2 ms 256 KB
random_12.txt AC 2 ms 256 KB
random_13.txt AC 2 ms 256 KB
random_14.txt AC 1 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 AC 2 ms 256 KB
random_5.txt AC 1 ms 256 KB
random_6.txt AC 2 ms 256 KB
random_7.txt AC 2 ms 256 KB
random_8.txt AC 2 ms 256 KB
random_9.txt AC 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 AC 1 ms 256 KB
small_5.txt AC 1 ms 256 KB
small_6.txt AC 1 ms 256 KB
small_7.txt AC 1 ms 256 KB
small_8.txt AC 1 ms 256 KB
small_9.txt AC 1 ms 256 KB