Submission #1454080
Source Code Expand
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define REP(i,n) for(int i=0;i<n;++i) #define SORT(name) sort(name.begin(), name.end()) #define ZERO(p) memset(p, 0, sizeof(p)) #define MINUS(p) memset(p, -1, sizeof(p)) #define MOD 1000000007 #define INF 1000000000 #define MAX_N 105 int N, K; string S; int alph[256]; // 各アルファベットがどれだけあるか int main() { ZERO(alph); cin >> N >> K >> S; vector<char> sorted; REP(i, S.length()) { sorted.push_back(S[i]); alph[S[i]]++; } SORT(sorted); string ans = S; REP(changed, S.length()+1) { int tmp_alph[256]; REP(i, 256) { tmp_alph[i] = alph[i]; } string tmp = ""; // changed 文字数ぶん辞書順にする REP(i, changed) { tmp += sorted[i]; tmp_alph[sorted[i]]--; } // 残りは(なるべく)そのまま for(int i = changed; i < S.length(); ++i) { if(tmp_alph[S[i]] <= 0) { // もうないなら別の文字が入る tmp += "?"; } else { tmp += S[i]; tmp_alph[S[i]]--; } } // ? の部分に辞書順で文字を入れる // この部分はどっちにしろ元の位置から変わるので、辞書順で入れてしまって OK REP(i, tmp.length()) { if(tmp[i] == '?') { REP(j, 256) { if(tmp_alph[j] > 0) { tmp[i] = (char)j; tmp_alph[j]--; break; } } } } // どれだけ変わっているか int diff_s = 0; REP(i, S.length()) { if(S[i] != tmp[i]) { diff_s++; } } //if(diff_s > K) { break; } if(diff_s <= K) { ans = tmp; } } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 辞書式順序ふたたび |
User | VTR |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2055 Byte |
Status | WA |
Exec Time | 2 ms |
Memory | 256 KB |
Judge Result
Set Name | All | ||||
---|---|---|---|---|---|
Score / Max Score | 0 / 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, 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 | WA | 1 ms | 256 KB |
hand_3_4.txt | AC | 1 ms | 256 KB |
hand_3_5.txt | WA | 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 | WA | 1 ms | 256 KB |
hand_4_4.txt | AC | 1 ms | 256 KB |
hand_4_5.txt | WA | 1 ms | 256 KB |
hand_4_6.txt | AC | 1 ms | 256 KB |
random_1.txt | WA | 1 ms | 256 KB |
random_10.txt | AC | 1 ms | 256 KB |
random_11.txt | WA | 1 ms | 256 KB |
random_12.txt | WA | 2 ms | 256 KB |
random_13.txt | WA | 1 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 | WA | 1 ms | 256 KB |
random_5.txt | AC | 1 ms | 256 KB |
random_6.txt | WA | 1 ms | 256 KB |
random_7.txt | AC | 1 ms | 256 KB |
random_8.txt | AC | 1 ms | 256 KB |
random_9.txt | WA | 1 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 |