Pagini recente » Cod sursa (job #1120138) | Cod sursa (job #2169987) | Cod sursa (job #1980569) | Cod sursa (job #1998346) | Cod sursa (job #993259)
Cod sursa(job #993259)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
int n,l,u;
int a[100];
int sol;
int fr1[100],fr2[100],c1,c2,st,dr1,dr2,solutie,p;
void Citire()
{ int i;
f>>n>>l>>u;
for(i=1;i<=n;i++)
f>>a[i];
}
int Problema(int p)
{
int i;
int sol=0;
fr1[a[1]]=fr2[a[1]]=1;
c1=c2=1;
dr1=1;
dr2=1;
st=1;
while(dr2<=n)
{
if(c1<p)
{
++dr1;
if(++fr1[a[dr1]]==1)
++c1;
}
if(c2<=p)
{
++dr2;
if(++fr2[a[dr2]]==1)
++c2;
}
else
{
sol+=dr2-dr1;
if(--fr1[a[st]]==0)
--c1;
if(--fr2[a[st]]==0)
--c2;
++st;
}
}
if(c1==p && c2==p+1)
sol+=dr2-dr1;
for(i=0;i<=100;i++)
{
fr1[i]=fr2[i]=0;
}
return sol;
}
int main()
{ int i;
Citire();
for(i=l;i<=u;i++)
solutie+=Problema(i);
g<<solutie<<"\n";
f.close();
g.close();
return 0;
}