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
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>                                                             
#include <vector>                                                               

                                                                                
using namespace std;                                                            
                                                                                










































































int main()                                                                      
{                                                                               
    int n, k;                                                                   

    cin >> n >> k;                                                              

    vector<int> t(n);                                                           
    for (int i = 0; i < n; ++i)                                                 

    {                                                                           


        cin >> t[i];                                                            


    }                                                                           
                                                                                
    constexpr int maxValue = 500001;                                            
    vector<bool> used(maxValue, false);                                         
    used[t[0]] = true;                                                          
    int i = 1;                                                                  
    int j = 1;                                                                  
    int result = 0;                                                             
    for (; i < k; ++i)                                                          
    {                                                                           
        while (j < n && used[t[j]])                                             
        {                                                                       
            ++j;                                                                
        }                                                                       
        if (j == n)                                                             
        {                                                                       
            break;                                                              
        }                                                                       
        result += j - i;                                                        
        used[t[j]] = true;                                                      
        ++j;                                                                    
    }                                                                           
    cout << ((i < k) ? -1 : result);                                            
    return 0;                                                                   
}