#include <iostream>
#include <vector>
//#include <bits/stdc++.h>
using namespace std;
#define FORE(x, b, e) for(int x = b; x <= (e); ++x)
#define FORL(x, b, e) for(int x = b; x < (e); ++x)
#define P(x) cout <<#x <<'=' <<(x) <<" ";
#define PP cout <<endl;
#define Pv(x,a,b) cout << #x<<'=';for(int i=a;i<=b;i++)cout<<' '<<x[i];PP
#define Pvv(x,y,a,b) cout <<#x <<#y <<'=';FORE(i,a,b)cout<<' '<<x[y[i]];PP
/*
typedef long long INT;
typedef unsigned long long UINT;
typedef vi vector<int>;
#define MAX 1009
UINT MOD = 1000000007ULL;
*/
#define MAX 500000
int T[MAX+1];
int main()
{
std::ios_base::sync_with_stdio(false); cin.tie(NULL);
int n,k,v;
int K=0,R=0;
cin >>n >>k;
FORE(i,1,n){
cin >>v;
if(!T[v]){
T[v]=1;
K++;
R+=i-K;
if(K==k) break;
}
}
cout << ((K<k)?-1:R) <<endl;
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 | #include <iostream> #include <vector> //#include <bits/stdc++.h> using namespace std; #define FORE(x, b, e) for(int x = b; x <= (e); ++x) #define FORL(x, b, e) for(int x = b; x < (e); ++x) #define P(x) cout <<#x <<'=' <<(x) <<" "; #define PP cout <<endl; #define Pv(x,a,b) cout << #x<<'=';for(int i=a;i<=b;i++)cout<<' '<<x[i];PP #define Pvv(x,y,a,b) cout <<#x <<#y <<'=';FORE(i,a,b)cout<<' '<<x[y[i]];PP /* typedef long long INT; typedef unsigned long long UINT; typedef vi vector<int>; #define MAX 1009 UINT MOD = 1000000007ULL; */ #define MAX 500000 int T[MAX+1]; int main() { std::ios_base::sync_with_stdio(false); cin.tie(NULL); int n,k,v; int K=0,R=0; cin >>n >>k; FORE(i,1,n){ cin >>v; if(!T[v]){ T[v]=1; K++; R+=i-K; if(K==k) break; } } cout << ((K<k)?-1:R) <<endl; return 0; } |
English