Submission #1454151
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; vector< pair<char, int> > sorted; vector<char> change_pool; int main() { cin >> N >> K >> S; REP(i, S.length()) { sorted.push_back(make_pair(S[i], i)); } SORT(sorted); string ans = S; if(K <= 1) { cout << ans << endl; return 0; } int cur = 0; while(K >= 2 && cur < S.length()) { if(S[cur] != '?' && S[cur] != sorted[cur].first) { change_pool.push_back(S[cur]); change_pool.push_back(sorted[cur].first); //printf("cur %d S[cur] %c sorted[cur].second %d sorted[cur].first %c\n", // cur, S[cur], sorted[cur].second, sorted[cur].first); S[cur] = '?'; S[sorted[cur].second] = '?'; K -= 2; } else if(S[cur] != '?' && S[cur] == sorted[cur].first) { change_pool.push_back(S[cur]); S[cur] = '?'; } else if(S[cur] == '?') { bool isFind = false; REP(i, change_pool.size()) { if(change_pool[i] == sorted[cur].first) { isFind = true; break; } } if(!isFind) { S[sorted[cur].second] = '?'; change_pool.push_back(sorted[cur].first); K -= 1; } } cur++; } //cout << S << endl; while(K > 0) { pair<int, int> cand = make_pair(-1, 255); REP(i, S.length()) { //printf("%c %d\n", S[i], S[i]); if(S[i] != '?' && (int)S[i] < cand.second && S[i] != sorted[i].first) { cand = make_pair(i, S[i]); } } if(cand.first != -1) { S[cand.first] = '?'; change_pool.push_back(cand.second); } K--; } //cout << S << endl; SORT(change_pool); int index = 0; REP(i, S.length()) { if(S[i] == '?') { S[i] = change_pool[index]; index++; } } ans = S; cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 辞書式順序ふたたび |
User | VTR |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2480 Byte |
Status | WA |
Exec Time | 1 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 | WA | 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 | WA | 1 ms | 256 KB |
hand_1_6.txt | WA | 1 ms | 256 KB |
hand_1_7.txt | WA | 1 ms | 256 KB |
hand_1_8.txt | WA | 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 | WA | 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 | WA | 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 | WA | 1 ms | 256 KB |
hand_3_3.txt | WA | 1 ms | 256 KB |
hand_3_4.txt | WA | 1 ms | 256 KB |
hand_3_5.txt | WA | 1 ms | 256 KB |
hand_3_6.txt | WA | 1 ms | 256 KB |
hand_4_2.txt | WA | 1 ms | 256 KB |
hand_4_3.txt | WA | 1 ms | 256 KB |
hand_4_4.txt | WA | 1 ms | 256 KB |
hand_4_5.txt | WA | 1 ms | 256 KB |
hand_4_6.txt | WA | 1 ms | 256 KB |
random_1.txt | AC | 1 ms | 256 KB |
random_10.txt | WA | 1 ms | 256 KB |
random_11.txt | WA | 1 ms | 256 KB |
random_12.txt | WA | 1 ms | 256 KB |
random_13.txt | WA | 1 ms | 256 KB |
random_14.txt | WA | 1 ms | 256 KB |
random_15.txt | WA | 1 ms | 256 KB |
random_2.txt | AC | 1 ms | 256 KB |
random_3.txt | WA | 1 ms | 256 KB |
random_4.txt | WA | 1 ms | 256 KB |
random_5.txt | WA | 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 |