CF616D WA on test 5求调,谢谢,码丑勿喷(用small panda cpp一键改码风改出来的)
#include<bits/stdc++.h>
using namespace std;
int a[1000005], n, k, tong[1000005];
int main() {
cin >> n >> k;
for ( int i = 1; i <= n; i++ ) {
cin >> a[i];
}
int r = 0, cnt = 0, ln = 0;
pair<int, int>ans;
for ( int l = 1; l <= n; l++ ) {
if ( l - 1 > 0 ) {
tong[a[l - 1]]--;
if ( tong[a[l - 1]] == 0 ) cnt--;
}
for ( ; r + 1 <= n && cnt <= k; ) {
r++;
tong[a[r]]++;
if ( tong[a[r]] == 1 ) cnt++;
}
if ( cnt > k ) {
tong[a[r]]--;
r--;
cnt--;
}
if ( cnt >= k ) {
if ( r - l + 1 > ln ) {
ln = r - l + 1;
ans.first = l;
ans.second = r;
}
}
}
cout << ans.first << ' ' << ans.second;
return 0;
}