#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,k;
cin>>n>>k;
vector<int>cnt(n,0);
vector<int>v;
for(int i=0;i<n;i++){
int x;
cin>>x;
x--;
cnt[x]++;
v.push_back(x);
}
int uniquectr=0;
for(auto const &w : cnt){
if(w>0){
uniquectr++;
}
}
if(uniquectr<k){
cout<<-1<<'\n';
return 0;
}
vector<bool>used(n,false);
int uniqueuses=0;
int res=0;
for(int i=0;i<n;i++){
if(!used[v[i]]){
used[v[i]]=true;
res+=i;
uniqueuses++;
}
if(uniqueuses>=k){
break;
}
}
for(int i=1;i<k;i++){
res-=i;
}
cout<<res;
}
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 | #include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n,k; cin>>n>>k; vector<int>cnt(n,0); vector<int>v; for(int i=0;i<n;i++){ int x; cin>>x; x--; cnt[x]++; v.push_back(x); } int uniquectr=0; for(auto const &w : cnt){ if(w>0){ uniquectr++; } } if(uniquectr<k){ cout<<-1<<'\n'; return 0; } vector<bool>used(n,false); int uniqueuses=0; int res=0; for(int i=0;i<n;i++){ if(!used[v[i]]){ used[v[i]]=true; res+=i; uniqueuses++; } if(uniqueuses>=k){ break; } } for(int i=1;i<k;i++){ res-=i; } cout<<res; } |
English