#include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, roz=0, wynik=0; cin>>n>>k; int dane[n]; int wyst[500003]={0}; //cout<<wyst[100]; for(int i=0;i<n;i++) { cin>>dane[i]; if(wyst[dane[i]]==0) { wyst[dane[i]]=i+1; roz++; } } if(roz<k) cout<<-1; else { sort(wyst, wyst+500003); int pom=500003-roz; //wyst[pom] - pierwsze for(int i=pom;i<pom+k;i++) { wynik=wynik+wyst[i]-i+pom-1; //cout<<wynik<<endl; } cout<<wynik; } }
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 | #include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, roz=0, wynik=0; cin>>n>>k; int dane[n]; int wyst[500003]={0}; //cout<<wyst[100]; for(int i=0;i<n;i++) { cin>>dane[i]; if(wyst[dane[i]]==0) { wyst[dane[i]]=i+1; roz++; } } if(roz<k) cout<<-1; else { sort(wyst, wyst+500003); int pom=500003-roz; //wyst[pom] - pierwsze for(int i=pom;i<pom+k;i++) { wynik=wynik+wyst[i]-i+pom-1; //cout<<wynik<<endl; } cout<<wynik; } } |