Đề: https://codeforces.com/edu/course/2/lesson/9/2/practice/contest/307093/problem/E
Em check trong môi trường dev-c++ hay code-block nó đều đúng test 1 nhưng khi nộp vô đây nó lại sai đáp án, và bị kêu lỗi OUT OF BOUND ở dòng 24:
count[arr[le]]--;
Em thấy thắc mắc vì em đặt 2 tham số là int rồi đủ qua giới hạn của bài mà nó vẫn bị lỗi out of bound. Mọi người giúp em với ạ, em cảm ơn.
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main () {
int n;
cin >> n;
int k;
cin >> k;
vector <int> arr (n);
for (int i = 0; i < n;i++) {
cin >> arr[i];
}
map <int, int> count;
int le = 0;
long long ans = 0;
long long sum = 0;
int num;
for (int ri = 0; ri < n;ri++) {
sum+= arr[ri];
count[arr[ri]]++;
if (count[arr[ri]] == 1) num++;
while (num > k) {
count[arr[le]]--;
if (count[arr[le]] == 0) num--;
le++;
}
ans += ri-le+1;
}
cout << ans;
}