Pagini recente » Cod sursa (job #1628190) | Cod sursa (job #1038800) | Cod sursa (job #1806766) | Cod sursa (job #345985) | Cod sursa (job #2774574)
#include <bits/stdc++.h>
#define MOD 1000007
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
unsigned int p,u,n,i,nr,x,sol,f[200010],w[2000010];
pair<unsigned int,unsigned int> v[2000010];
vector<unsigned int> H[1000010];
int in(unsigned int x){
for(int i=0;i<H[x%MOD].size();i++)
if(H[x%MOD][i]==x)
return 1;
return 0;
}
int main(){
fin>>n>>p>>u;
for(i=1;i<=n;i++)
fin>>w[i];
for(i=1;i<=n;i++){
if(w[i]!=w[i-1]){
nr++;
x=w[i];
v[nr].second=x;
if(!in(x)){
H[x%MOD].push_back(x);
v[nr].first=v[nr-1].first+1;
}else
v[nr].first=v[nr-1].first;
}
f[nr]++;
}
for(i=1;i<nr;i++){
int crt=0;
int transport=0;
for(int j=i+1;j<=nr;j++){
if(v[j].first-v[i].first>=p-1&&v[j].first-v[i].first<u)
crt+=f[j];
if(v[j].second==v[i].second)
transport=1;
v[j].first+=transport;
}
sol+=f[i]*crt;
}
fout<<sol;
return 0;
}