This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
using namespace std;
#define int long long
int n, k;
string s;
const int inf = 1e10;
int get(int i, int j)
{
int cnt[3] = {0, 0, 0};
int ans = 0;
for (int x = i; x <= j; x++)
{
if (cnt[0] < k && s[x] == 'J')
{
cnt[0]++;
}
else if (cnt[0] == k && cnt[1] < k && s[x] == 'O')
{
cnt[1]++;
}
else if (cnt[1] == k && cnt[2] < k && s[x] == 'I')
{
cnt[2]++;
}
else
{
ans++;
}
}
if (cnt[0] == k && cnt[1] == k && cnt[2] == k)
{
return ans;
}
return -1;
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> k >> s;
int sub = 3 * k;
int m = inf;
for (int i = 0; i < n; i++)
{
for (int j = (i + sub) - 1; j < n; j++)
{
int ans = get(i, j);
if (ans == -1)
{
continue;
}
m = min(ans, m);
}
}
cout << (m == inf ? -1 : m) << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |