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