传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1342
刷这么多水题我都不好意思了……
做这道题有没有一种即视感 @bzoj1112
而且更水……
Code:
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; map<int,int>M; int n,m,c; int anss[maxn]; int a[maxn]; int main(){ scanf("%d%d%d",&n,&m,&c); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); if(i<=m)M[a[i]]++; }if((--M.end())->first-M.begin()->first<=c)anss[++anss[0]]=1; for(int i=2;i+m-1<=n;i++){ if(!--M[a[i-1]]) M.erase(a[i-1]); M[a[i+m-1]]++; if((--M.end())->first-M.begin()->first<=c)anss[++anss[0]]=i; }if(anss[0])for(int i=1;i<=anss[0];i++)printf("%d\n",anss[i]); else puts("NONE"); return 0; }