#include <bits/stdc++.h>
using namespace std;
int main() {
// Dane
long long n,k,t;
string day;
cin >> n >> k >> t >> day;
// Robocze
vector<int> meet_stat;
vector<int> pref_mstat;
vector<int> meet_zdal;
vector<int> pref_mzdal;
pref_mstat.resize(n);
pref_mzdal.resize(n);
uint64_t res=0;
for (int i=0; i<day.size(); i++) {
switch(day[i]) {
case '1': {
meet_stat.push_back(i);
if (i==0) pref_mstat[i]++;
else pref_mstat[i] = pref_mstat[i-1] + 1;
break;
}
case '2': {
meet_zdal.push_back(i);
if (i==0) pref_mzdal[i]++;
else pref_mzdal[i] = pref_mzdal[i-1] + 1;
break;
}
default: {
pref_mstat[i] = pref_mstat[i-1];
pref_mzdal[i] = pref_mzdal[i-1];
}
}
}
if (meet_stat.size() <= k) {
k = meet_stat.size() + meet_zdal.size() - k + 1;
if (k < 0) k=0;
cout << n - k << '\n';
}
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 | #include <bits/stdc++.h> using namespace std; int main() { // Dane long long n,k,t; string day; cin >> n >> k >> t >> day; // Robocze vector<int> meet_stat; vector<int> pref_mstat; vector<int> meet_zdal; vector<int> pref_mzdal; pref_mstat.resize(n); pref_mzdal.resize(n); uint64_t res=0; for (int i=0; i<day.size(); i++) { switch(day[i]) { case '1': { meet_stat.push_back(i); if (i==0) pref_mstat[i]++; else pref_mstat[i] = pref_mstat[i-1] + 1; break; } case '2': { meet_zdal.push_back(i); if (i==0) pref_mzdal[i]++; else pref_mzdal[i] = pref_mzdal[i-1] + 1; break; } default: { pref_mstat[i] = pref_mstat[i-1]; pref_mzdal[i] = pref_mzdal[i-1]; } } } if (meet_stat.size() <= k) { k = meet_stat.size() + meet_zdal.size() - k + 1; if (k < 0) k=0; cout << n - k << '\n'; } return 0; } |
English