Submission #922976

# Submission time Handle Problem Language Result Execution time Memory
922976 2024-02-06T11:28:26 Z NintsiChkhaidze JJOOII 2 (JOI20_ho_t2) C++17
100 / 100
7 ms 6948 KB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
#define pb push_back
using namespace std;
const int inf = 1e9;
vector <int> v[7];
int dp[200003][6];

int main() {
	ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL);
	int n,k;
	cin>>n>>k;

	string s;
	cin>>s;
	s='%'+s;

	map <char,int> mp;
	mp['J'] = 1;
	mp['O'] = 2;
	mp['I'] = 3;

	dp[0][1] = dp[0][2] = dp[0][3] = inf;
	int ans = inf;
 	for (int i = 1; i <= n; i++){
		v[mp[s[i]]].pb(i);

		for (int j = 1; j <= 3; j++){
			dp[i][j] = dp[i - 1][j] + 1;
			int t = v[j].size();
			if (t < k) continue;

			int l = v[j][t - k];
			int del = (i - l + 1 - k);
			dp[i][j] = min(dp[i][j],del + dp[l - 1][j - 1]);
		}

		ans=min(ans,dp[i][3]);
	}
	if (ans >= inf) ans=-1;
	cout<<ans<<endl;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 464 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 344 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 464 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 464 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 344 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 464 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 1 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 344 KB Output is correct
26 Correct 0 ms 344 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 0 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 1 ms 348 KB Output is correct
31 Correct 0 ms 348 KB Output is correct
32 Correct 0 ms 348 KB Output is correct
33 Correct 1 ms 344 KB Output is correct
34 Correct 0 ms 344 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 464 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 344 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 464 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 1 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 344 KB Output is correct
26 Correct 0 ms 344 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 0 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 1 ms 348 KB Output is correct
31 Correct 0 ms 348 KB Output is correct
32 Correct 0 ms 348 KB Output is correct
33 Correct 1 ms 344 KB Output is correct
34 Correct 0 ms 344 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 6 ms 6204 KB Output is correct
37 Correct 7 ms 6688 KB Output is correct
38 Correct 7 ms 6696 KB Output is correct
39 Correct 7 ms 6712 KB Output is correct
40 Correct 6 ms 6692 KB Output is correct
41 Correct 7 ms 6716 KB Output is correct
42 Correct 7 ms 6692 KB Output is correct
43 Correct 4 ms 4436 KB Output is correct
44 Correct 5 ms 5200 KB Output is correct
45 Correct 7 ms 6948 KB Output is correct
46 Correct 7 ms 6768 KB Output is correct
47 Correct 6 ms 6692 KB Output is correct
48 Correct 7 ms 6632 KB Output is correct
49 Correct 4 ms 4708 KB Output is correct
50 Correct 6 ms 6836 KB Output is correct
51 Correct 6 ms 6688 KB Output is correct
52 Correct 5 ms 6184 KB Output is correct
53 Correct 6 ms 6692 KB Output is correct
54 Correct 6 ms 6820 KB Output is correct
55 Correct 5 ms 6812 KB Output is correct
56 Correct 5 ms 6820 KB Output is correct