/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 1ms 320.0 KiB
#4 Accepted 1ms 532.0 KiB
#5 Accepted 51ms 21.445 MiB
#6 Accepted 50ms 21.34 MiB
#7 Accepted 50ms 21.477 MiB
#8 Accepted 51ms 21.469 MiB
#9 Accepted 51ms 21.379 MiB
#10 Accepted 51ms 21.438 MiB
#11 Accepted 1ms 320.0 KiB
#12 Accepted 1ms 532.0 KiB
#13 Accepted 1ms 340.0 KiB
#14 Accepted 1ms 368.0 KiB
#15 Accepted 4ms 536.0 KiB
#16 Accepted 4ms 532.0 KiB
#17 Accepted 4ms 532.0 KiB
#18 Accepted 4ms 324.0 KiB
#19 Accepted 4ms 320.0 KiB
#20 Accepted 4ms 320.0 KiB
#21 Accepted 4ms 532.0 KiB
#22 Accepted 4ms 532.0 KiB
#23 Accepted 4ms 532.0 KiB
#24 Accepted 4ms 340.0 KiB
#25 Accepted 4ms 532.0 KiB
#26 Accepted 4ms 532.0 KiB
#27 Accepted 4ms 532.0 KiB
#28 Accepted 4ms 532.0 KiB
#29 Accepted 4ms 348.0 KiB
#30 Accepted 4ms 552.0 KiB
#31 Accepted 4ms 552.0 KiB
#32 Accepted 4ms 532.0 KiB
#33 Accepted 4ms 532.0 KiB
#34 Accepted 4ms 532.0 KiB
#35 Accepted 4ms 532.0 KiB
#36 Accepted 4ms 532.0 KiB
#37 Accepted 4ms 324.0 KiB
#38 Accepted 5ms 332.0 KiB
#39 Accepted 4ms 544.0 KiB
#40 Accepted 4ms 400.0 KiB
#41 Accepted 4ms 532.0 KiB
#42 Accepted 4ms 532.0 KiB
#43 Accepted 4ms 488.0 KiB
#44 Accepted 4ms 532.0 KiB
#45 Accepted 4ms 532.0 KiB
#46 Accepted 4ms 392.0 KiB
#47 Accepted 4ms 532.0 KiB
#48 Accepted 4ms 324.0 KiB
#49 Accepted 4ms 532.0 KiB
#50 Accepted 4ms 544.0 KiB
#51 Accepted 4ms 532.0 KiB
#52 Accepted 4ms 532.0 KiB
#53 Accepted 4ms 532.0 KiB
#54 Accepted 4ms 532.0 KiB
#55 Accepted 4ms 532.0 KiB
#56 Accepted 4ms 528.0 KiB
#57 Accepted 4ms 440.0 KiB
#58 Accepted 4ms 320.0 KiB
#59 Accepted 4ms 532.0 KiB
#60 Accepted 4ms 532.0 KiB
#61 Accepted 4ms 320.0 KiB
#62 Accepted 4ms 356.0 KiB
#63 Accepted 4ms 324.0 KiB
#64 Accepted 4ms 532.0 KiB
#65 Accepted 4ms 532.0 KiB
#66 Accepted 4ms 344.0 KiB
#67 Accepted 4ms 344.0 KiB
#68 Accepted 4ms 532.0 KiB
#69 Accepted 4ms 532.0 KiB
#70 Accepted 4ms 532.0 KiB
#71 Accepted 4ms 320.0 KiB
#72 Accepted 4ms 532.0 KiB
#73 Accepted 4ms 532.0 KiB
#74 Accepted 4ms 480.0 KiB
#75 Accepted 4ms 344.0 KiB
#76 Accepted 4ms 440.0 KiB
#77 Accepted 4ms 532.0 KiB
#78 Accepted 4ms 328.0 KiB
#79 Accepted 4ms 768.0 KiB
#80 Accepted 4ms 536.0 KiB
#81 Accepted 5ms 336.0 KiB
#82 Accepted 4ms 536.0 KiB
#83 Accepted 4ms 532.0 KiB
#84 Accepted 4ms 532.0 KiB
#85 Accepted 4ms 532.0 KiB
#86 Accepted 4ms 532.0 KiB
#87 Accepted 4ms 444.0 KiB
#88 Accepted 4ms 532.0 KiB
#89 Accepted 4ms 532.0 KiB
#90 Accepted 4ms 324.0 KiB
#91 Accepted 4ms 532.0 KiB
#92 Accepted 4ms 532.0 KiB
#93 Accepted 4ms 532.0 KiB
#94 Accepted 4ms 328.0 KiB
#95 Accepted 4ms 320.0 KiB
#96 Accepted 4ms 532.0 KiB
#97 Accepted 4ms 532.0 KiB
#98 Accepted 4ms 532.0 KiB
#99 Accepted 5ms 344.0 KiB
#100 Accepted 4ms 532.0 KiB

Code

#include <bits/stdc++.h>
using namespace std;

int main(){
  int n, k;
  string s, ans, tmp;
  cin >> n >> k >> s;
  n = s.size();
  s = "?" + s;
  vector<vector<int>> a(26, vector<int> (n + 1));
  for (int i = 1; i <= n; i++){
    a[s[i] - 97][i]++;
    for (int j = 0; j < 26; j++){
      a[j][i] += a[j][i - 1];
    }
  }
  for (int i = 1; i + k - 1 <= n; ){
    int ok = 1;
    for (int j = 0; j < 26; j++){
      if (a[j][i + k - 1] - a[j][i - 1] > 0 && s[i] - 97 != j){
        for (int l = i; l < i + k; l++){
          tmp += s[l];
        }
        sort(tmp.begin(), tmp.end());
        ans += tmp;
        ok = 0;
        tmp.clear();
        break;
      } else if (a[j][i + k - 1] - a[j][i - 1] > 0 && s[i] - 97 == j){
        break;
      }
    } //cout<<ans<<ok<<endl;
    if (ok){ //out<<s[i]<<endl;
      ans += s[i];
      if (i + k - 1 == n){
        for (int l = i + 1; l <= n; l++){
          tmp += s[l];
        }
        sort(tmp.begin(), tmp.end());
        ans += tmp; //cout<<ans<<endl;
        break;
      } //cout<<ans<<endl;
      i++;
    } else {
      if (n - (i + k - 1) < k){
        for (int l = i + k; l <= n; l++){
          ans += s[l];
        }
        break;
      }
      i = i + k; //cout << i<<endl;
    }
  }
for(int i=0;i<1e5;i++){
for(int j=0;j<1e5;j++){
}}
  cout << ans;
}

Information

Submit By
Type
Submission
Problem
P1230 Lexicographically Smallest Rearrangement
Contest
Testing - Intra LU Programming contest 25
Language
C++17 (G++ 13.2.0)
Submit At
2025-08-30 21:30:09
Judged At
2025-08-30 21:30:09
Judged By
Score
100
Total Time
51ms
Peak Memory
21.477 MiB