Submission #1589198


Source Code Expand

#include "bits/stdc++.h"
#include <regex>
#define _USE_MATH_DEFINES
#include <math.h>

using namespace std;

#ifndef _DEBUG
#define main_ main
#endif
#define FOR(i,s,e) for (int i = int(s); i < int(e); ++i)
#define REP(i,e) FOR(i,0,e)
#define INF (INT_MAX/2)
#define EPS (1.0e-8)
#define LINF (LONG_MAX/2)

typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<bool> vb;
typedef vector<string> vs;

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;
}

vs split(string str, char sep) {
	stringstream ss(str); string t; vs v;
	while (getline(ss, t, sep)) v.push_back(t);
	return v;
}

void init_global() {}

int N, K;
string S, A;
vb usedS, usedA;

int match(string A, string S) {
	vb tmpUsedS = usedS;
	int cnt = 0;

	FOR(i, 0, N) {
		if (usedA[i]) continue;
		FOR(j, 0, N) {
			if (tmpUsedS[j]) continue;
			if (A[i] == S[j]) {
				cnt++;
				tmpUsedS[j] = true;
				break;
			}
		}
	}
	return cnt;
}

void dfs(int i, string s, int lim, string& ans) {
	if (i == N) {
		ans = s;
		return;
	}

	usedS[i] = true;

	FOR(j, 0, N) {
		if (usedA[j])continue;
		usedA[j] = true;

		if (S[i] == A[j]) {
			dfs(i + 1, s + A[j], lim, ans);
		}
		else {
			int dif = N - (i+1) - match(A, S);
			if (dif <= lim - 1) {
				dfs(i + 1, s + A[j], lim - 1, ans);
				return;
			}
			else {
				usedA[j] = false;
			}
		}
	}

	usedS[i] = false;
}

int main_() {
	cin.tie(0);
	ios::sync_with_stdio(false);

	cin >> N >> K;
	cin >> S;

	A = S;
	sort(A.begin(), A.end());

	usedS.resize(N, false);
	usedA.resize(N, false);
	string ans;
	dfs(0, "", K, ans);

	cout << ans << endl;

	usedS.clear();
	usedA.clear();

	return 0;
}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User apprec
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2012 Byte
Status AC
Exec Time 27 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 2 ms 256 KB
random_10.txt AC 22 ms 256 KB
random_11.txt AC 14 ms 256 KB
random_12.txt AC 16 ms 256 KB
random_13.txt AC 10 ms 256 KB
random_14.txt AC 3 ms 256 KB
random_15.txt AC 2 ms 256 KB
random_2.txt AC 2 ms 256 KB
random_3.txt AC 2 ms 256 KB
random_4.txt AC 4 ms 256 KB
random_5.txt AC 2 ms 256 KB
random_6.txt AC 6 ms 256 KB
random_7.txt AC 21 ms 256 KB
random_8.txt AC 27 ms 256 KB
random_9.txt AC 26 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