#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define inf 1e18
const int mod=1e9+7;
const int N=2e5+5;
int n,k;
int a[N],sum[N];
void solve(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
sum[i]=sum[i-1]+a[i];
}
int p=k*(k+1)/2;
int ans=0,cnt=0;
map<int,int>mp;
for(int i=1;i<=n;i++){
if(i-k>0){
if(mp[a[i-k]]==1){
mp.erase(a[i-k]);
}
else{
mp[a[i-k]]--;
}
}
mp[a[i]]++;
if(mp.size()==k&&sum[i]-sum[i-k]==p){
ans++;
}
}
cout<<ans;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int tt=1;
// cin>>tt;
while(tt--) solve();
return 0;
}
小红的子数组排列判断(前缀和&模拟)--牛客周赛 Round 43-D
最新推荐文章于 2024-06-13 23:07:13 发布