Pagini recente » Cod sursa (job #819266) | Cod sursa (job #2980984) | Cod sursa (job #2194431) | Cod sursa (job #2175209) | Cod sursa (job #555854)
Cod sursa(job #555854)
#include<fstream>
#include<vector>
#include<algorithm>
#define dmax 1100000
#define mod 514229
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
unsigned int n,k,l,u, nr, x[dmax],nr2;
unsigned int z[mod], w[dmax], pasu, pasl;
unsigned int sol;
int main()
{
int i;
in>>n>>l>>u;
for(i=1;i<=n;i++)
in>>x[i];
in.close();
pasu = 1;
pasl = 1;
z[x[1] % mod]=1;
w[x[1] % mod]=1;
nr = 1;
nr2 = 1;
if(l==1)
sol=1;
for(i=2; i<=n; i++)
{
k = x[i] % mod;
if(!z[k])
nr++;
z[k]++;
while(nr > u && nr < i)
{
k = x[pasu] % mod;
z[k]--;
if(!z[k])
nr--;
pasu++;
}
sol += (i - pasu +1);
if(!w[k])
nr2++;
w[k]++;
while(nr2 > l-1 && pasl < i)
{
k = x[pasl] % mod;
w[k]--;
if(!w[k])
nr2--;
pasl++;
}
if(l!=1)
sol -= (i - pasl +1);
}
out<<sol;
out.close();
return 0;
}