Submission #1216588


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 count_dif(string& s, int pos, string& a) {
	int cnt = 0;

	vector<bool> used(a.size(), false);

	for (int i = pos; i < s.size(); i++) {
		bool match = false;
		for (int j = 0; j < a.size(); j++) {
			if (a[j] == s[i] && !used[j]) {
				match = true;
				used[j] = true;
				break;				
			}
		}
		if (!match) cnt++;
	}

	return cnt;
}

void dfs(string& a, int pos, int lim, string& s, string& ans) {
	if (a.size() == 0) return;

	for (int i = 0; i < a.size(); i++) {
		string t = a;
		t.erase(i, 1);

		int dl = (s[pos] != a[i]) ? -1 : 0;

		if (count_dif(s, pos + 1, t) <= lim + dl) {
			ans += a[i];
			dfs(t, pos + 1, lim + dl, s, ans);
			return;
		}
	}

	vector<bool> used(a.size(), false);
	vector<bool> fixed(s.size(), false);

	for (int i = pos; i < s.size(); i++) {
		for (int j = 0; j < a.size(); j++) {
			if (s[i] == a[j]) {
				ans += a[j];
				used[j] = true;
				fixed[i] = true;
				break;
			}
		}
	}

	for (int i = pos; i < s.size(); i++) {
		if (fixed[i]) continue;
		for (int j = 0; j < a.size(); j++) {
			if (!used[j]) {
				ans += a[j];
				used[j] = true;
				break;
			}
		}
	}
}

int main_() {
	int n, k;
	cin >> n >> k;
	string s;
	cin >> s;

	string a = s;
	sort(a.begin(), a.end());

	string ans;
	dfs(a, 0, k, s, ans);

	cout << ans << endl;

	return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User apprec
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1709 Byte
Status AC
Exec Time 14 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 11 ms 256 KB
random_11.txt AC 7 ms 256 KB
random_12.txt AC 7 ms 256 KB
random_13.txt AC 4 ms 256 KB
random_14.txt AC 2 ms 256 KB
random_15.txt AC 2 ms 256 KB
random_2.txt AC 2 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 3 ms 256 KB
random_7.txt AC 11 ms 256 KB
random_8.txt AC 14 ms 256 KB
random_9.txt AC 13 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