Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- long long int n = 0, p = 0, sum = 0, it = 0, tmp = 1000001;
- int arr[3000000];
- int arr1[3000000];
- int arr2[3000000];
- cin >> n >> p;
- arr1[0] = 1;
- for (int i = 0; i < n; i++)
- {
- cin >> arr[i];
- }
- arr2[arr[0] + tmp] = 1;
- sum+=1;
- for (int i = 1; i < n; i++)
- {
- arr2[arr[i] + tmp]+=1;
- if (arr2[arr[i] + tmp] <= p)
- {
- arr1[i] += arr1[i - 1] + 1;
- sum += arr1[i];
- }
- else
- {
- for (int j = it; j < n; j++)
- {
- if (arr[i] != arr[j])
- {
- arr2[arr[j] + tmp] -= 1;
- }
- else
- {
- it = j + 1;
- break;
- }
- }
- arr1[i] = i - it + 1;
- sum += arr1[i];
- }
- }
- cout << sum<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement