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