Submission #2603247
Source Code Expand
#include <iostream> #include <cmath> #include <cstdlib> #include <vector> #include <cstdio> using namespace std; const char GetKthAlphabet(string& s, int k) { vector<char> mins; mins.push_back(s[0]); for (int i = 1; i < s.size(); ++i) { bool is_inserted = false; for (int j = 0; j < mins.size(); ++j) { if (mins[j] == s[i]) { break; } if (mins[j] > s[i]) { mins.insert(mins.begin() + j, s[i]); is_inserted = true; break; } } if (!is_inserted) { mins.push_back(s[i]); } if (mins.size() > k) { mins.resize(k); } } return mins[k-1]; } int main() { string s; int K; cin >> s; cin >> K; char a[2] = {'\0'}; a[0] = GetKthAlphabet(s, 1); string kth = string(a); if (K == 1) { cout << kth << endl; return 0; } int initial = 1; for (int i = 2; i <= K; ++i) { char min_c; bool exists = false; for (int j = 0; j < s.size() - kth.size(); ++j) { if (s.substr(j, kth.size()) == kth) { if (!exists) { min_c = s[j + kth.size()]; } else { min_c = (s[j + kth.size()] < min_c) ? s[j + kth.size()] : min_c; } exists = true; } } if (exists) { kth += min_c; } else { char a[2] = {'\0'}; ++initial; a[0] = GetKthAlphabet(s, initial); kth = string(a); } } cout << kth << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - K-th Substring |
User | dazzhe |
Language | C++14 (GCC 5.4.1) |
Score | 300 |
Code Size | 1449 Byte |
Status | AC |
Exec Time | 2 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | Subtask | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 200 / 200 | 100 / 100 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt, 0_002.txt |
Subtask | 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt |
All | 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 2_011.txt, 2_012.txt, 2_013.txt, 2_014.txt, 2_015.txt, 2_016.txt, 2_017.txt, 2_018.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 1 ms | 256 KB |
0_001.txt | AC | 1 ms | 256 KB |
0_002.txt | AC | 1 ms | 256 KB |
1_003.txt | AC | 1 ms | 256 KB |
1_004.txt | AC | 1 ms | 256 KB |
1_005.txt | AC | 1 ms | 256 KB |
1_006.txt | AC | 1 ms | 256 KB |
1_007.txt | AC | 1 ms | 256 KB |
1_008.txt | AC | 1 ms | 256 KB |
1_009.txt | AC | 1 ms | 256 KB |
1_010.txt | AC | 1 ms | 256 KB |
2_011.txt | AC | 2 ms | 256 KB |
2_012.txt | AC | 2 ms | 256 KB |
2_013.txt | AC | 2 ms | 256 KB |
2_014.txt | AC | 2 ms | 256 KB |
2_015.txt | AC | 2 ms | 256 KB |
2_016.txt | AC | 2 ms | 256 KB |
2_017.txt | AC | 2 ms | 256 KB |
2_018.txt | AC | 2 ms | 256 KB |