Submission #769504

# Submission time Handle Problem Language Result Execution time Memory
769504 2023-06-29T16:39:25 Z stefdasca JJOOII 2 (JOI20_ho_t2) C++14
100 / 100
7 ms 1620 KB
#include <bits/stdc++.h>

using namespace std;

int vj[200001], vo[200001], vi[200001];

int lj, lo, li;

int main()
{
	int n, k;
	cin >> n >> k;
	
	string s;
	cin >> s;
	
	
	for(int i = 0; i < n; i++)
	{
		if(s[i] == 'J')
			vj[++lj] = i;
		if(s[i] == 'O')
			vo[++lo] = i;
		if(s[i] == 'I')
			vi[++li] = i;
	}
	
	int pj = 1;
	int po = 1;
	int pi = 1;
	
	int ans = n+1;
	
	while(pj + k - 1 <= lj && po + k - 1 <= lo && pi + k - 1 <= li)
	{
		while(po + k - 1 <= lo && vo[po] <= vj[pj + k - 1])
			po++;
			
		if(po + k - 1 <= lo)
			while(pi + k - 1 <= li && vi[pi] <= vo[po + k - 1])
				pi++;
		
		if(pj + k - 1 <= lj && po + k - 1 <= lo && pi + k - 1 <= li)
		{
			int fi = vj[pj];
			int lst = vi[pi + k - 1];	
			
			
			ans = min(ans, (lst - fi + 1) - 3 * k);
		}
		pj++;
		
	}
	
	if(ans == n+1)
		cout << -1;
	else
		cout << ans;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 1 ms 312 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 1 ms 312 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 308 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 308 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 340 KB Output is correct
26 Correct 1 ms 212 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 308 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 1 ms 212 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 0 ms 212 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 1 ms 312 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 308 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 308 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 340 KB Output is correct
26 Correct 1 ms 212 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 308 KB Output is correct
30 Correct 1 ms 340 KB Output is correct
31 Correct 1 ms 212 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 0 ms 212 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 1 ms 340 KB Output is correct
36 Correct 5 ms 1508 KB Output is correct
37 Correct 6 ms 1612 KB Output is correct
38 Correct 6 ms 1508 KB Output is correct
39 Correct 6 ms 1508 KB Output is correct
40 Correct 5 ms 1508 KB Output is correct
41 Correct 5 ms 1508 KB Output is correct
42 Correct 6 ms 1616 KB Output is correct
43 Correct 3 ms 1124 KB Output is correct
44 Correct 4 ms 1360 KB Output is correct
45 Correct 5 ms 1508 KB Output is correct
46 Correct 5 ms 1508 KB Output is correct
47 Correct 7 ms 1612 KB Output is correct
48 Correct 7 ms 1600 KB Output is correct
49 Correct 5 ms 1124 KB Output is correct
50 Correct 5 ms 1516 KB Output is correct
51 Correct 5 ms 1508 KB Output is correct
52 Correct 5 ms 1488 KB Output is correct
53 Correct 5 ms 1620 KB Output is correct
54 Correct 4 ms 1608 KB Output is correct
55 Correct 4 ms 1508 KB Output is correct
56 Correct 4 ms 1616 KB Output is correct