/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 532.0 KiB
#2 Accepted 6ms 532.0 KiB
#3 Accepted 7ms 580.0 KiB
#4 Accepted 5ms 532.0 KiB
#5 Accepted 7ms 532.0 KiB
#6 Accepted 8ms 708.0 KiB
#7 Accepted 4ms 576.0 KiB
#8 Accepted 5ms 696.0 KiB
#9 Accepted 14ms 1.281 MiB
#10 Accepted 14ms 1.324 MiB
#11 Accepted 6ms 788.0 KiB
#12 Accepted 6ms 788.0 KiB
#13 Accepted 13ms 1.816 MiB
#14 Accepted 3ms 788.0 KiB

Code

#include <bits/stdc++.h>
#include <cmath>
#include <bitset>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
#define ll long long int
#define lld long double
#define yes cout << "Yes" << endl
#define no cout << "No" << endl
#define gcd(a, b) __gcd(a, b)
#define lcm(a, b) ((a * b) / gcd(a, b))
#define pi acos(-1.00)
void evan(int t)
{
  ll n;cin>>n;
  ll k;cin>>k;
  string s;
  cin>>s;
  vector<ll>v;
  ll cnt=0;
  for(int i=0;i<n;i++){
     if(s[i]=='1'){
      cnt++;
     }
     else{
      if(cnt!=0)v.push_back(cnt);
      cnt=0;
     }
  }
  if(cnt!=0)v.push_back(cnt);
  if(v.size()==0){
    cout<<0<<"\n";return;
  }
  sort(v.begin(),v.end());
  reverse(v.begin(),v.end());
  ll ans=0;
  n=v.size();
  for(int i=0;i<min(k+1,n);i++){
      ans+=v[i];
      //cout<<v[i]<<" ";
  }
  cout<<ans<<"\n";

}
signed main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(nullptr);
  int t = 1;
  cin >> t;
  for (int i = 1; i <= t; i++)
  {
    evan(i);
  }
}

Information

Submit By
Type
Submission
Problem
P1159 Binary String
Contest
Brain Booster #8
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 15:36:21
Judged At
2025-02-17 15:36:21
Judged By
Score
100
Total Time
14ms
Peak Memory
1.816 MiB