题目链接:​​http://codeforces.com/contest/779/problem/B​​​
题意:给你一个数s,再给你一个整数k,为你最少删除s的几位数使得s能够整除10^k
解析:分两种情况,如果s的零的个数小于k,那么直接输出len(s)-1,否则从s的后面往前扫,维护一下答案即可

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
#include <vector>
#include <queue>
#include <string>
#include <set>
#include <map>
using namespace std;
const int maxn = 1e5+100;
char a[1000];
int main()
{
int k;
scanf("%s %d",a,&k);
int len = strlen(a);
int tmp = 0;
for(int i=0;i<len;i++)
{
if(a[i]=='0')
tmp++;
}
if(tmp<k)
printf("%d\n",len-1);
else
{
int tt = 0;
for(int i=len-1;i>=0;i--)
{
if(a[i]!='0')
tt++;
if(a[i]=='0')
k--;
if(k==0)
break;
}
printf("%d\n",tt);
}
return 0;
}