//Piotr Kowalski 2D
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k,t;
cin >> n >> k >> t;
string s;
cin >> s;
int b=n;
int pl = 0;
for (int i=0;i<s.size();i++) {
if (s[i] == '1') {
if (k>0) {
k--;
}
else {
b--;
if (pl==0) {
b-=t;
pl=1;
}
}
}
else {
if (s[i] == '2') {
b--;
}
if (s[i] == '3' && pl==1){
bool f = true;
for (int j=i;j<i+t;j++) {
if (s[i] != '3') {
f=false;
break;
}
}
if (f) {
b-=t;
pl = 0;
}
else{
b--;
}
}
}
}
if (k>0) {
b-=k;
}
if (pl==1) {
b-=t;
}
if (b<0) {
b = -1;
}
cout << b;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | //Piotr Kowalski 2D #include <bits/stdc++.h> using namespace std; int main() { int n,k,t; cin >> n >> k >> t; string s; cin >> s; int b=n; int pl = 0; for (int i=0;i<s.size();i++) { if (s[i] == '1') { if (k>0) { k--; } else { b--; if (pl==0) { b-=t; pl=1; } } } else { if (s[i] == '2') { b--; } if (s[i] == '3' && pl==1){ bool f = true; for (int j=i;j<i+t;j++) { if (s[i] != '3') { f=false; break; } } if (f) { b-=t; pl = 0; } else{ b--; } } } } if (k>0) { b-=k; } if (pl==1) { b-=t; } if (b<0) { b = -1; } cout << b; return 0; } |
English