萌新求助,贪心贪了个寂寞,44pts
查看原帖
萌新求助,贪心贪了个寂寞,44pts
341049
xtracer楼主2021/2/18 19:53

RT.

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
typedef long long ll;
struct digit{
    ll val,ind;
};
bool cmp(digit x,digit y){
    if(x.val!=y.val)return x.val>y.val;
    else return x.ind<y.ind;
}
class number{
    public:
        string num;
        ll add[100001];
        digit now[100001];
        void get_add(){
            for(ll i=0;i<num.length();i++)add[i]=num.length()-i;
            for(ll i=0;i<num.length();i++)now[i].val=add[i]+num[i]-48,now[i].ind=i;
        }
        void del(){
            get_add();
            digit nmax;
            nmax.val=-2147483648;
            for(ll i=0;i<num.length();i++){
                if(cmp(now[i],nmax))nmax=now[i];
            }
            num.erase(num.begin()+nmax.ind);
        }
};
number a;
ll k;
int main(){
    cin>>a.num>>k;
    for(ll i=0;i<k;i++)a.del();
    cout<<a.num;
    return 0;
}

样例是对的,就是玄学位算法qwq

2021/2/18 19:53
加载中...