fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. int main() {
  8. cin.tie(0)->sync_with_stdio(0);
  9. int t;
  10. cin >> t;
  11. while (t--) {
  12. int n, k, num = 0;
  13. string s;
  14. vector<int> ans;
  15. cin >> n >> k >> s;
  16. reverse(s.begin(), s.end());
  17. for(int i = 0; i < s.size() - 1; i++){
  18. if(s[i] == '1')num ++;
  19. else num --;
  20. if(num > 0)ans.push_back(num);
  21. }
  22. sort(ans.rbegin(), ans.rend());
  23. for(int i = 0; i < ans.size(); i++){
  24. k -= ans[i];
  25. if(k <= 0){
  26. cout << i + 2 << endl;
  27. break;
  28. }
  29. }
  30. if(k > 0)cout << "-1\n";
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0s 5284KB
stdin
7
4 1
1001
4 1
1010
4 1
0110
4 2
0110
6 3
001110
10 20
1111111111
5 11
11111
stdout
2
-1
2
-1
3
4
-1