fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5. #define pb push_back
  6. #define mp make_pair
  7. #define ff first
  8. #define ss second
  9. #define fri(i,a,b) for(ll i=a;i<b;i++)
  10. #define tc ll t;cin>>t;while(t--)
  11. typedef pair<ll, ll> ii;
  12. typedef vector<ii> vii;
  13.  
  14. int main() {
  15. ios_base::sync_with_stdio(false);cin.tie(NULL);
  16. tc{
  17. ll n,k;cin>>n>>k;
  18. string s;cin>>s;
  19. if(n==0 || n==1)cout<<0<<endl;
  20. else{
  21. vii v;
  22. ll zt=0;
  23. ll z=0;
  24. fri(i,0,n){
  25. if(s[i]=='0'){
  26. z++;
  27. }
  28. else{
  29. if(z!=0){
  30. zt+=z;
  31. if(i-z==0){
  32. v.pb(mp(z,1LL));
  33. }
  34. else{
  35. v.pb(mp(z,2LL));
  36. }
  37. z=0;
  38. }
  39. }
  40. }
  41. if(z!=0){v.pb(mp(z,1LL));}
  42. ll c=0;
  43. sort(v.rbegin(),v.rend());
  44. fri(i,0,v.size()){
  45. if(v[i].ss <=k){
  46. c+= v[i].ff;
  47. k-=v[i].ss;
  48. }
  49. }
  50. cout<<zt-c<<endl;
  51. }
  52.  
  53. }
  54.  
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 4532KB
stdin
1
9 2
001000100
stdout
2