Pagini recente » Cod sursa (job #2162856) | Rating Velicu Teodora (DoraBenzo) | Cod sursa (job #275330) | Cod sursa (job #2225868) | Cod sursa (job #706025)
Cod sursa(job #706025)
#include <vector>
#include <fstream>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
const int P=666013;
vector <unsigned int> H[P];
vector <int> a;
int n,l,u;
bool cauta(unsigned int x){
unsigned aux=x%P;
for(int i=0;i<H[aux].size();++i)
if(H[aux][i]==x)
return true;
return false;
}
int main(){
long long rez=0;
int nr,i,nrap;
int *sp;
unsigned x;
in>>n>>l>>u;
for(i=1;i<=n;++i){
in>>x;
if(cauta(x)==1){
nrap++;
continue;
}
else{
H[x%P].push_back(x);
a.push_back(nrap);
nrap=1;
}
}
if(nrap>1)
a.push_back(nrap);
sp=new int[a.size()+2];
sp[0]=0;
for(i=1;i<a.size();++i)
sp[i]=sp[i-1]+a[i];
int inf,sup;
for(i=1;i<a.size();++i){
if(i+l>a.size())
break;
else
inf=sp[i+l-2];
if(i+u>a.size())
sup=sp[a.size()-1];
else
sup=sp[i+u-1];
rez+=(a[i]*(sup-inf));
}
out<<rez;
return 0;
}