Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8. Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <cstring>


using namespace std;

int main() {
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);
	
	unsigned int k; //liczba skrajnie lewych butelek
	unsigned int n; //liczba butelek
	unsigned int pom=0;//przechowuje butelk� do usuni�cia 
	unsigned long long czas=0;//zmienna do liczenia czasu
			
	cin >> n >> k;
	
	unsigned int butelki[n];//marki butelek od lewej
	unsigned int marki[n+1];
	
	memset(marki, 0, sizeof marki+1); //wyzerowanie element�w tablicy

	for(unsigned int i=0;i<n; i++)
	{
		cin>>butelki[i];
		marki[butelki[i]]++;//zliczam ile jest element�w danej marki
	}
	
	//zliczam ile jest marek
	unsigned int ile_marek=0;	
	for(unsigned int i=0;i<n+1; i++)
	{
		if(marki[i]>0) 
		{
			ile_marek++;
		}
	}
	
	if(k>ile_marek) cout<<-1;
	else
	{
		//liczenie czasu
		
		for(unsigned int i=0;i<k; i++)
		{
			//wykreslanie marek kt�re ju� s� w ciagu k elementowym
			if(marki[butelki[i]]!=0)
			{
				marki[butelki[i]]=0;
			}
			else//marka ju� wystapi�a w ciagu k elementowym, trzeba szuka� kolejnej liczby w ci�gu by ja na tym miejscu wstawi�
			{
				for(unsigned int j=i+1;j<n;j++) //szukam nowej do stawienia marki
				{
					if(marki[butelki[j]]!=0)
					{
						//wstawiam na i te miejsce i licze czas
						czas += j-i;
						
						pom = butelki[j];//element do przesuniecia w ci�gu
						//cout<<"czas"<<czas<<" i"<<i<<" j"<<j<<" pom"<<pom<<endl;
						for (unsigned int k = j; k > i; --k)//przesuwanie butelek
       					{
            				butelki[k] = butelki[k-1];
            			}
            			butelki[i] = pom;
						
						marki[pom]=0;
						i++;
						
					}
					if(i==k) break;
					
				}
			}
			
			
		}
		cout<<czas;
	}
	
	/*cout<<"butelki\n";
	for(int i=0;i<n; i++)
	{
		cout<<butelki[i]<<" ";//zliczam ile jest element�w danej marki
	}
	cout<<"\n";*/
	
	
	
	return 0;
}