#include <iostream>
#include <vector>
typedef long long ll;
using namespace std;
inline vector<ll> pobierz(ll n) {
vector<ll> a(n);
for (ll i = 0; i < n; i++) {
cin >> a[i];
}
return a;
}
inline bool sprawdza(vector<ll>& a, ll& k, ll& i) {
for (ll z = 0; z < i; z++) {
if (a[i] == a[z]) {
return true;
}
}
return false;
}
inline bool sprawdza2(vector<ll>& a, ll& j) {
for (ll z = 0; z < j; z++){
if (a[j] == a[z]) {
return false;
}
}
return true;
}
inline void for3(vector<ll>& a, ll& i, ll& j, ll& wynik) {
for (int z = j; (z > i) && (z > 1); z--) {
ll x = a[z];
a[z] = a[z - 1];
a[z - 1] = x;
wynik++;
}
}
inline ll for1(vector<ll> &a, ll &n, ll &k) {
ll wynik = 0;
for (ll i = 0; i < n; i++) {
if (i < k) {
if (sprawdza(a, k, i)) {
for (ll j = (i + 1); j < n; j++) {
if (sprawdza2(a, j)) {
for3(a, i, j, wynik);
break;
}
else if (j == (n - 1)){
return -1;
}
}
}
}
else {
break;
}
}
return wynik;
}
int main()
{
ll n = 1;
ll k = 1;
cin >> n >> k;
vector<ll> a = pobierz(n);
cout << for1(a, n, k);
return 0;}
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 | #include <iostream> #include <vector> typedef long long ll; using namespace std; inline vector<ll> pobierz(ll n) { vector<ll> a(n); for (ll i = 0; i < n; i++) { cin >> a[i]; } return a; } inline bool sprawdza(vector<ll>& a, ll& k, ll& i) { for (ll z = 0; z < i; z++) { if (a[i] == a[z]) { return true; } } return false; } inline bool sprawdza2(vector<ll>& a, ll& j) { for (ll z = 0; z < j; z++){ if (a[j] == a[z]) { return false; } } return true; } inline void for3(vector<ll>& a, ll& i, ll& j, ll& wynik) { for (int z = j; (z > i) && (z > 1); z--) { ll x = a[z]; a[z] = a[z - 1]; a[z - 1] = x; wynik++; } } inline ll for1(vector<ll> &a, ll &n, ll &k) { ll wynik = 0; for (ll i = 0; i < n; i++) { if (i < k) { if (sprawdza(a, k, i)) { for (ll j = (i + 1); j < n; j++) { if (sprawdza2(a, j)) { for3(a, i, j, wynik); break; } else if (j == (n - 1)){ return -1; } } } } else { break; } } return wynik; } int main() { ll n = 1; ll k = 1; cin >> n >> k; vector<ll> a = pobierz(n); cout << for1(a, n, k); return 0;} |
English