Submission #343493


Source Code Expand

#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<vector>
using namespace std;
#define rep(i,a,b) for(auto (i)=(a);(i)<(b);(i)++)
#define rev(i,a,b) for(auto (i)=(b)-1;(i)>=(a);(i)--)

char id[101]; //K==Nの時の解
char ans[101];//解
char str[101];//元の文字列
char tmp[101];
char tp[101];
int N;//文字数
int K;//変えていい回数
int check(char *s1, char *s2){
	int r = 0;
	while (*s1 != '\0')
	if (*(s1++) != *(s2)++)r++;
	return r;
}



void cp(char *s, char *t){ rep(i, 0, N)t[i] = s[i]; }
void swaps(char *s, char *t){ auto u = (*s); (*s) = (*t); (*t) = u; }

void form(){
	int h = 0;
	rep(i, 0, N)if (ans[i] != str[i])tmp[h++] = ans[i];
	sort(tmp, tmp + h);
	h = 0;
	rep(i, 0, N)if (ans[i] != str[i])ans[i] = tmp[h++];
}

void solve(){
	int k = K;
	int n, m;
	while (k >= 2){
		if (check(id, ans) == 0)return;
		n = 0;
		while (id[n] == ans[n])n++;
		m = N-1;
		while ((m>n)&&!(id[n]==ans[m]&&str[m]!=ans[m]))m--;
		if (m == n){
			m = N - 1;
			while (id[n] != ans[m])m--;
		}
		swaps(ans + n, ans + m);
		form();
		k = K - check(str, ans);
		//cout << ans << k << endl;
	}
	
	if (k == 1){
		cp(ans, id);
		cp(ans, tp);
		rep(i, 0, N)
			rep(j, 0, N){
				swaps(ans + i, ans + j);
				form();
				if (check(str, ans) <= K)
				if (strcmp(ans, id) < 0)
					cp(ans, id);
				cp(tp, ans);
			}
		cp(id, ans);
	}
	
}


int main(void){
	
	cin>> N >> K;
	cin >> str;
	cp(str, ans);
	cp(str, id);
	sort(id, id + N);

	solve();
	cout << ans << endl; 

}

Submission Info

Submission Time
Task C - 辞書式順序ふたたび
User btk15049
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1591 Byte
Status AC
Exec Time 47 ms
Memory 1092 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 54
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, 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 32 ms 976 KB
hand_1_1.txt AC 31 ms 976 KB
hand_1_2.txt AC 30 ms 992 KB
hand_1_3.txt AC 29 ms 1048 KB
hand_1_4.txt AC 30 ms 1040 KB
hand_1_5.txt AC 30 ms 1040 KB
hand_1_6.txt AC 32 ms 972 KB
hand_1_7.txt AC 28 ms 1052 KB
hand_1_8.txt AC 31 ms 996 KB
hand_2_0.txt AC 30 ms 1044 KB
hand_2_1.txt AC 38 ms 972 KB
hand_2_10.txt AC 30 ms 1060 KB
hand_2_2.txt AC 29 ms 1000 KB
hand_2_3.txt AC 29 ms 1060 KB
hand_2_4.txt AC 29 ms 1072 KB
hand_2_5.txt AC 27 ms 1052 KB
hand_2_6.txt AC 30 ms 1064 KB
hand_2_7.txt AC 30 ms 980 KB
hand_2_8.txt AC 28 ms 996 KB
hand_2_9.txt AC 32 ms 996 KB
hand_3_2.txt AC 27 ms 980 KB
hand_3_3.txt AC 30 ms 1004 KB
hand_3_4.txt AC 29 ms 1052 KB
hand_3_5.txt AC 28 ms 1000 KB
hand_3_6.txt AC 28 ms 1044 KB
hand_4_2.txt AC 28 ms 1052 KB
hand_4_3.txt AC 31 ms 1044 KB
hand_4_4.txt AC 29 ms 1052 KB
hand_4_5.txt AC 29 ms 992 KB
hand_4_6.txt AC 30 ms 1040 KB
random_1.txt AC 28 ms 1044 KB
random_10.txt AC 30 ms 980 KB
random_11.txt AC 40 ms 944 KB
random_12.txt AC 44 ms 1092 KB
random_13.txt AC 47 ms 992 KB
random_14.txt AC 46 ms 1052 KB
random_15.txt AC 29 ms 1052 KB
random_2.txt AC 28 ms 972 KB
random_3.txt AC 31 ms 1040 KB
random_4.txt AC 31 ms 1052 KB
random_5.txt AC 28 ms 1048 KB
random_6.txt AC 37 ms 1056 KB
random_7.txt AC 30 ms 1044 KB
random_8.txt AC 35 ms 948 KB
random_9.txt AC 36 ms 1000 KB
sample_1.txt AC 29 ms 1068 KB
sample_2.txt AC 29 ms 996 KB
sample_3.txt AC 30 ms 1048 KB
sample_4.txt AC 28 ms 1040 KB
small_1.txt AC 32 ms 988 KB
small_2.txt AC 30 ms 1048 KB
small_3.txt AC 28 ms 1044 KB
small_4.txt AC 30 ms 1040 KB
small_5.txt AC 28 ms 1048 KB
small_6.txt AC 27 ms 932 KB
small_7.txt AC 29 ms 1044 KB
small_8.txt AC 30 ms 1048 KB
small_9.txt AC 28 ms 1044 KB