#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;} |