#include<bits/stdc++.h> using namespace std; string s; int allmeets[8009], inperson[8009], remote[8009]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k, t, a, b, c, wyn = -1; cin>>n>>k>>t>>s; for(int i=1; i<=n; i++) { if(s[i-1] == '1') inperson[i] = allmeets[i] = 1; else if(s[i-1] == '2') remote[i] = allmeets[i] = 1; inperson[i] += inperson[i-1]; allmeets[i] += allmeets[i-1]; remote[i] += remote[i-1]; } for(int i=1; i<=n-2*t+1; i++) { for(int j=i+t; j<=n-t+1; j++) { a = allmeets[i+t-1] - allmeets[i-1] + allmeets[j+t-1] - allmeets[j-1]; a += inperson[i-1] + inperson[n] - inperson[j+t-1]; b = remote[i-1] + remote[n] - remote[j+t-1]; if(a <= k) { b = max(0, b - (k - a)); c = i - 1 + n - (j + t - 1) - b; wyn = max(wyn, c); } } } a = inperson[n]; b = remote[n]; if(a <= k) { b = max(0, b - (k - a)); c = n - b; wyn = max(wyn, c); } cout<<wyn; 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 | #include<bits/stdc++.h> using namespace std; string s; int allmeets[8009], inperson[8009], remote[8009]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k, t, a, b, c, wyn = -1; cin>>n>>k>>t>>s; for(int i=1; i<=n; i++) { if(s[i-1] == '1') inperson[i] = allmeets[i] = 1; else if(s[i-1] == '2') remote[i] = allmeets[i] = 1; inperson[i] += inperson[i-1]; allmeets[i] += allmeets[i-1]; remote[i] += remote[i-1]; } for(int i=1; i<=n-2*t+1; i++) { for(int j=i+t; j<=n-t+1; j++) { a = allmeets[i+t-1] - allmeets[i-1] + allmeets[j+t-1] - allmeets[j-1]; a += inperson[i-1] + inperson[n] - inperson[j+t-1]; b = remote[i-1] + remote[n] - remote[j+t-1]; if(a <= k) { b = max(0, b - (k - a)); c = i - 1 + n - (j + t - 1) - b; wyn = max(wyn, c); } } } a = inperson[n]; b = remote[n]; if(a <= k) { b = max(0, b - (k - a)); c = n - b; wyn = max(wyn, c); } cout<<wyn; return 0; } |