#include<bits/stdc++.h>
using namespace std;
const int N=1111;
pair<char,int> f[N][13];
pair<char,int> change(pair<char,int> a,pair<char,int> b){
if(a.first<=b.first) return a;
return b;
}
char s[N];
int m,n;
void build(){
n=strlen(s+1);
for(int i=1;i<=n;i++) f[i][0]=make_pair(s[i],i);
for(int j=1;(1<<j)<=n;j++){
for(int i=1;i+(1<<j)-1<=n;i++){
f[i][j]=change(f[i][j-1],f[i+(1<<j-1)][j-1]);
}
}
}
pair<char,int> query(int L,int R){
int k=log2(R-L+1);
return change(f[L][k],f[R-(1<<k)+1][k]);
}
int main(){
while(cin>>s+1>>m){
build();
int tmp=n-m,L=1,R=m+1;
queue<int>q;
while(tmp--){
L=query(L,R).second;
q.push(s[L]-'0');
L++,R++;
}
while(!q.empty()&&q.front()==0) q.pop();
if(q.empty()) cout<<"0";
else{
while(!q.empty()){
cout<<q.front();
q.pop();
}
}
cout<<endl;
}
return 0;
}
A Magic Lamp
最新推荐文章于 2024-09-13 16:27:15 发布