#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'; } |