#include <bits/stdc++.h>
using namespace std;
int d[8001];
int p[8001];
char x;
int n,k,t,i,a,j;
int z,m,y,ss;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k >> t;
for (i=0;i<n;i++) {
cin >> x;
//cout << x;
p[i+1]=p[i];
d[i+1]=d[i];
if(x<'3')
p[i+1]++;
if(x=='2')
d[i+1]++;
}
/*for (i=0;i<=n;i++)
cout << d[i] << ' ';
cout << '\n';
for (i=0;i<=n;i++)
cout << p[i] << ' ';
cout << '\n';*/
m=-1;
ss=p[n]-k;
for(i=t;i<n;i++){
for(j=i;j+t<=n;j++){
y=d[i-t]+d[n]-d[j+t];
z=y+p[j]-p[i]-ss;
if(z<0) continue;
if(z<y)
m=max(i+n-j-2*t-y+z,m);
else
m=max(i+n-j-2*t,m);
//cout << i << ' ' << j << ' ' << z << ' ' << m << '\n';
}
}
if(p[n]-d[n]<=k)
m=max(n-p[n]+min(k,p[n]),m);
cout << m << '\n';
}
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 | #include <bits/stdc++.h> using namespace std; int d[8001]; int p[8001]; char x; int n,k,t,i,a,j; int z,m,y,ss; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> k >> t; for (i=0;i<n;i++) { cin >> x; //cout << x; p[i+1]=p[i]; d[i+1]=d[i]; if(x<'3') p[i+1]++; if(x=='2') d[i+1]++; } /*for (i=0;i<=n;i++) cout << d[i] << ' '; cout << '\n'; for (i=0;i<=n;i++) cout << p[i] << ' '; cout << '\n';*/ m=-1; ss=p[n]-k; for(i=t;i<n;i++){ for(j=i;j+t<=n;j++){ y=d[i-t]+d[n]-d[j+t]; z=y+p[j]-p[i]-ss; if(z<0) continue; if(z<y) m=max(i+n-j-2*t-y+z,m); else m=max(i+n-j-2*t,m); //cout << i << ' ' << j << ' ' << z << ' ' << m << '\n'; } } if(p[n]-d[n]<=k) m=max(n-p[n]+min(k,p[n]),m); cout << m << '\n'; } |
English