Pagini recente » Cod sursa (job #2866158) | Cod sursa (job #1659613) | Cod sursa (job #1633432) | Cod sursa (job #834456) | Cod sursa (job #2318866)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("lautari.in");
ofstream fout("lautari.out");
int n,minim,maxim,x,f[100010],e[100010],cop[100010],fn,zero;
int main(){
fin>>n>>minim>>maxim;
for(int i=1;i<=n;i++){
fin>>x;
if(e[x]==0)
f[i]=f[i-1]+1;
else
f[i]=f[i-1];
e[x]=1;
}
for(int i=1;i<=n;i++)
cop[i]=f[i];
//f[i][j]= cate numere unice s-au gasit pana la j incepand cu i
// dar tin minte o singura linie pe care o obt din precedenta
// nu cred ca merge
for(int i=1;i<=n;i++){
if(i!=1)
for(int t=1;t<=n;t++){
if(t<i){
zero++;
f[t]=0;
}
if(t==i)
f[t]=1;
if(t>i)
f[t]=cop[t-i+zero-1];
//cout<<f[t];
}//cout<<endl;
zero=0;
for(int j=i;j<=n;j++)
if(f[j]-f[i]+1>=minim&&f[j]-f[i]+1<=maxim){
// cout<<i<<" "<<j;
fn++;
}
}
fout<<fn;
return 0;
}