Submission #3458153


Source Code Expand

#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <string>
#include <limits>
#include <algorithm>
#include <map>
#include <sstream>

using ll = long long;
using ull = unsigned long long;
using uint = unsigned int;
static ull tenq = 1000000000;
static ull mod = tenq + 7;

using namespace std;

int main()
{
  ll K;
  string s;
  cin >> s;
  cin >> K;
  string invalid = "{}";
  vector<string> xs;
  for (auto i = 0; i < K; i++) xs.push_back(invalid);
  make_heap(xs.begin(), xs.end(), greater<string>());
  for (auto i = 0; i < s.size(); i++) {
    ll len = 1;
    for (auto len = 1; len <= 5 && i + len <= s.size(); len++) {
      string t = s.substr(i, len);
//      cout << "i=" << i << " len=" << len << " " << xs.front() << " < " << t << "?=" << (xs.front() < t) << s.size() << endl;
//      cout << xs.front() << " t=" << t << endl;
      if (xs.front() < t) continue;
      bool isin = false;
      for (auto w : xs) if (w == t) isin = true;
      if (isin) continue;
//      cout << "push " << t << endl;
      pop_heap(xs.begin(), xs.end()); xs.pop_back();
      xs.push_back(t); push_heap(xs.begin(), xs.end());
    }
  }
//  return 0;
  while (xs.front() == invalid) {
//    cout << "! pop " << xs.front() << " " << (xs.front()) << " xs.size()=" << xs.size() << endl;
    pop_heap(xs.begin(), xs.end()); xs.pop_back();
  }

  cout << xs.front() << endl;

  return 0;
}

Submission Info

Submission Time
Task C - K-th Substring
User kgoto
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1466 Byte
Status AC
Exec Time 5 ms
Memory 256 KB

Judge Result

Set Name Sample Subtask All
Score / Max Score 0 / 0 200 / 200 100 / 100
Status
AC × 3
AC × 11
AC × 19
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 4 ms 256 KB
2_012.txt AC 4 ms 256 KB
2_013.txt AC 3 ms 256 KB
2_014.txt AC 5 ms 256 KB
2_015.txt AC 2 ms 256 KB
2_016.txt AC 3 ms 256 KB
2_017.txt AC 3 ms 256 KB
2_018.txt AC 3 ms 256 KB