6042 2023. 10. 28 18:57:13 Gervid Karácsonyi égők cpp17 Elfogadva 100/100 158ms 28348 KiB
#include <iostream>
#include <vector>
#include <set>
#include <limits.h>

using namespace std;

int main()
{
    int n, c, i, out = INT_MAX;
	cin >> n >> c;

    vector<int> leds(n);

	for (i = 0; i < n; i++)
	{
		cin >> leds[i];
	}

	vector<int> colors(c, 0);
	set<int> present;

	int back = 0;
	i = 0;

	while (i < n)
	{
		while (present.size() < c && i < n)
		{
			colors[leds[i]]++;
			present.insert(leds[i]);
			i++;
		}

		while (present.size() == c)
		{
			if (out > i - back)
			{
				out = i - back;
			}
			
			if (--colors[leds[back]] == 0)
			{
				present.erase(leds[back]);
			}

			back++;
		}

	}

	cout << out;
}
//10 4
//0 1 3 0 0 1 2 0 2 3
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1804 KiB
2 Elfogadva 3ms 1932 KiB
subtask2 15/15
3 Elfogadva 41ms 4016 KiB
4 Elfogadva 41ms 4636 KiB
5 Elfogadva 39ms 5256 KiB
6 Elfogadva 3ms 3988 KiB
7 Elfogadva 3ms 3996 KiB
subtask3 10/10
8 Elfogadva 3ms 4040 KiB
9 Elfogadva 3ms 4184 KiB
10 Elfogadva 3ms 4396 KiB
11 Elfogadva 3ms 4452 KiB
12 Elfogadva 3ms 4456 KiB
subtask4 20/20
13 Elfogadva 3ms 4476 KiB
14 Elfogadva 3ms 4464 KiB
15 Elfogadva 3ms 4600 KiB
16 Elfogadva 3ms 4680 KiB
17 Elfogadva 3ms 4668 KiB
subtask5 25/25
18 Elfogadva 4ms 5468 KiB
19 Elfogadva 4ms 5320 KiB
20 Elfogadva 4ms 5512 KiB
21 Elfogadva 4ms 5292 KiB
22 Elfogadva 4ms 5308 KiB
subtask6 30/30
23 Elfogadva 158ms 28348 KiB
24 Elfogadva 61ms 8600 KiB
25 Elfogadva 70ms 9752 KiB
26 Elfogadva 104ms 15828 KiB
27 Elfogadva 123ms 21892 KiB
28 Elfogadva 71ms 13184 KiB
29 Elfogadva 61ms 13656 KiB
30 Elfogadva 39ms 13948 KiB