Submission #59017137


Source Code Expand

#include <bits/stdc++.h>
#include<atcoder/all>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
using namespace atcoder;
#define all(a) a.begin(),a.end()
typedef long long ll;
typedef pair<ll,ll> P;
typedef modint1000000007 mi;
constexpr ll mod=1000000007;

class char_index{
	public:
	char c;
	int index;

	bool operator< (const char_index& a) const{
		if(c<a.c)return true;
		if(c>a.c)return false;
		return index<a.index;
	}
	bool operator>(const char_index& a) const{
		if(c<a.c)return false;
		if(c>a.c)return true;
		return index>a.index;
	}
};

int main(){
	int n,k;cin>>n>>k;
	string s;cin>>s;
	set<char_index> S;
	rep(i,n-k)S.insert({s[i],i});
	string ans;

	int l=0;

	rep(i,k){
		S.insert({s[n+i-k],n+i-k});
		auto min_c=S.begin();
		ans.push_back((*min_c).c);
		int r=(*min_c).index;
		for(int j=l;j<=r;j++){
			S.erase({s[j],j});
		}
		l=r+1;
	}
	cout<<ans<<endl;
}

Submission Info

Submission Time
Task 006 - Smallest Subsequence(★5)
User Rho17
Language C++ 20 (gcc 12.2)
Score 5
Code Size 936 Byte
Status AC
Exec Time 30 ms
Memory 8032 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 5 / 5
Status
AC × 2
AC × 29
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 10_random_small_00.txt, 10_random_small_01.txt, 11_random_medium_00.txt, 11_random_medium_01.txt, 12_random_large_00.txt, 12_random_large_01.txt, 13_random_max_00.txt, 13_random_max_01.txt, 13_random_max_02.txt, 20_unique_small_00.txt, 20_unique_small_01.txt, 21_unique_medium_00.txt, 21_unique_medium_01.txt, 22_unique_large_00.txt, 22_unique_large_01.txt, 23_unique_max_00.txt, 23_unique_max_01.txt, 23_unique_max_02.txt, 30_equal_small_00.txt, 30_equal_small_01.txt, 31_equal_medium_00.txt, 31_equal_medium_01.txt, 32_equal_large_00.txt, 32_equal_large_01.txt, 33_equal_max_00.txt, 33_equal_max_01.txt, 33_equal_max_02.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3528 KiB
00_sample_01.txt AC 1 ms 3528 KiB
10_random_small_00.txt AC 1 ms 3684 KiB
10_random_small_01.txt AC 1 ms 3628 KiB
11_random_medium_00.txt AC 4 ms 4040 KiB
11_random_medium_01.txt AC 2 ms 3808 KiB
12_random_large_00.txt AC 4 ms 3892 KiB
12_random_large_01.txt AC 9 ms 4704 KiB
13_random_max_00.txt AC 7 ms 4192 KiB
13_random_max_01.txt AC 8 ms 4576 KiB
13_random_max_02.txt AC 30 ms 8032 KiB
20_unique_small_00.txt AC 1 ms 3592 KiB
20_unique_small_01.txt AC 1 ms 3604 KiB
21_unique_medium_00.txt AC 6 ms 4688 KiB
21_unique_medium_01.txt AC 3 ms 3816 KiB
22_unique_large_00.txt AC 7 ms 4456 KiB
22_unique_large_01.txt AC 4 ms 3788 KiB
23_unique_max_00.txt AC 6 ms 4008 KiB
23_unique_max_01.txt AC 11 ms 5064 KiB
23_unique_max_02.txt AC 14 ms 5620 KiB
30_equal_small_00.txt AC 1 ms 3688 KiB
30_equal_small_01.txt AC 1 ms 3592 KiB
31_equal_medium_00.txt AC 3 ms 3700 KiB
31_equal_medium_01.txt AC 1 ms 3656 KiB
32_equal_large_00.txt AC 4 ms 3864 KiB
32_equal_large_01.txt AC 4 ms 3952 KiB
33_equal_max_00.txt AC 4 ms 3956 KiB
33_equal_max_01.txt AC 4 ms 3876 KiB
33_equal_max_02.txt AC 4 ms 4008 KiB