Submission #1513267
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) { vs v; stringstream ss(str); string t; while (getline(ss, t, sep)) v.push_back(t); return v; } void init_global() {} int N, K; string S, A; int match_src2tar(string Src, vb used, string Tar, vb used2) { int SL = Src.size(), TL = Tar.size(); int cnt = 0; vb tmpUsed = used2; FOR(i, 0, SL) { if (used[i]) continue; FOR(j, 0, TL) { if (tmpUsed[j]) continue; if (Src[i] == Tar[j]) { tmpUsed[j] = true; cnt++; break; } } } return cnt; } void dfs(int i, vb used, vb usedA, int lim, string& ans) { if (i == N) return; used[i] = true; FOR(j, 0, N) { if (usedA[j]) continue; if (A[j] == S[i]) { ans += A[j]; usedA[j] = true; dfs(i + 1, used, usedA, lim, ans); return; } else { usedA[j] = true; // temporarily int dif = N - (i + 1) - match_src2tar(A, usedA, S, used); if (dif <= lim - 1) { ans += A[j]; // Adopt usedA[j] = true; dfs(i + 1, used, usedA, lim - 1, ans); return; } else { usedA[j] = false; // undo } } } } int main_() { cin.tie(0); ios::sync_with_stdio(false); cin >> N >> K; cin >> S; A = S; sort(A.begin(), A.end()); string ans = ""; vb used(N, false); vb usedA(N, false); dfs(0, used, usedA, K, ans); cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 辞書式順序ふたたび |
User | apprec |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2162 Byte |
Status | AC |
Exec Time | 24 ms |
Memory | 256 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, 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 | 20 ms | 256 KB |
random_11.txt | AC | 13 ms | 256 KB |
random_12.txt | AC | 16 ms | 256 KB |
random_13.txt | AC | 9 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 | 19 ms | 256 KB |
random_8.txt | AC | 24 ms | 256 KB |
random_9.txt | AC | 23 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 |