zoukankan      html  css  js  c++  java
  • B. Ania and Minimizing (Codeforces Round #588 (Div. 2) )

    Ania has a large integer SS. Its decimal representation has length nn and doesn't contain any leading zeroes. Ania is allowed to change at most kk digits of SS. She wants to do it in such a way that SS still won't contain any leading zeroes and it'll be minimal possible. What integer will Ania finish with?

    Input

    The first line contains two integers nn and kk (1n2000001≤n≤200000, 0kn0≤k≤n) — the number of digits in the decimal representation of SSand the maximum allowed number of changed digits.

    The second line contains the integer SS. It's guaranteed that SS has exactly nn digits and doesn't contain any leading zeroes.

    Output

    Output the minimal possible value of SS which Ania can end with. Note that the resulting integer should also have nn digits.

    Examples
    input
    Copy
    5 3
    51528
    
    output
    Copy
    10028
    
    input
    Copy
    3 2
    102
    
    output
    Copy
    100
    
    input
    Copy
    1 1
    1
    
    output
    Copy
    0
    
    Note

    A number has leading zeroes if it consists of at least two digits and its first digit is 00. For example, numbers 0000, 0006900069 and 01010101 have leading zeroes, while 00, 30003000 and 10101010 don't have leading zeroes.

     

     

    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <cstdlib>
    #include <map>
    #include <vector>
    #include <set>
    #include <queue>
    #include <stack>
    #include <cmath>
    using namespace std;
    #define ull unsigned long long
    #define lli long long
    #define pq priority_queue<int>
    #define pql priority_queue<ll>
    #define pqn priority_queue<node>
    #define v vector<int>
    #define vl vector<ll>
    #define read(x) scanf("%d",&x)
    #define lread(x) scanf("%lld",&x);
    #define pt(x) printf("%d
    ",(x))
    #define YES printf("YES
    ");
    #define NO printf("NO
    ");
    #define gcd __gcd
    #define out(x) cout<<x<<endl;
    #define over cout<<endl;
    #define rep(j,k) for (int i = (int)(j); i <= (int)(k); i++)
    #define input(k) for (int i = 1; i <= (int)(k); i++)  {scanf("%d",&a[i]) ; }
    #define mem(s,t) memset(s,t,sizeof(s))
    #define ok return 0;
    #define TLE std::ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    #define mod(x) ((x)%9973)
    #define test cout<<"     ++++++      "<<endl;
    //二叉树
    #define lson rt<<1, l, m
    #define rson rt<<1|1, m+1, r
    //线段树
    #define ls now<<1
    #define rs now<<1|1
    //int dir[6][3] = {0,0,1,0,0,-1,1,0,0,-1,0,0,0,1,0,0,-1,0};
    //int dir[4][2] = {1,0,-1,0,0,1,0,-1}; //单位移动
    //int dir[8][2] = {2,1,2,-1,-2,1,-2,-1,1,2,1,-2,-1,2,-1,-2};
    int t,n,m,k,x,y,col,ex,ey,ans,cnt,ly;
    string str;
    int a[5];;
    int main()
    {
        while(cin>>n>>k)
        {
            cin>>str;
            if(!k)
                cout<<str<<endl;
            else if(n==1)
                cout<<0<<endl;
            else
            {
                if(str[0]!='1')
                    {str[0] = '1';k--;}
                
                for(int i=1; i<str.size() && k; i++)
                {
                    if(str[i]!='0')
                    {str[i]='0';k--;}
     
                }
                cout<<str<<endl;
            }
        }
     
    }
    所遇皆星河
  • 相关阅读:
    PfSense基于BSD的软件防火墙的安装、配置与应用
    Puppet安装与配置简介(附视频教程)
    Vmware ESX5i 环境下部署Windows Storage Server 2008 R2
    揭秘TPM安全芯片技术及加密应用
    WebRTC实现网页版多人视频聊天室
    Oracle-BPM安装详解
    Specifying the Code to Run on a Thread
    Processes and Threads
    64、ORM学员管理系统-----联合查询
    拦截导弹
  • 原文地址:https://www.cnblogs.com/Shallow-dream/p/11577734.html
Copyright © 2011-2022 走看看