Pagini recente » Cod sursa (job #943057) | Cod sursa (job #9932) | Cod sursa (job #143979) | Cod sursa (job #511035) | Cod sursa (job #1152372)
#include<fstream>
#include<vector>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
long long i,j,n,p,jp,u,nrel,rez,k,o,x,y,c[1048580];
vector<long long>a[1000004];
vector<long long>b[1000004];
void include(long long x)
{
long long i,j,ok;
i=x%1000003;
ok=0;
for(j=0;j<a[i].size();j++)
{
if(a[i][j]==x)
{
b[i][j]++;
j=a[i].size()+1;
ok=1;
}
}
if(ok==0)
{
a[i].push_back(x);
b[i].push_back(1);
nrel++;
}
}
void erase(long long x)
{
long long i,j;
i=x%1000003;
for(j=0;j<a[i].size();j++)
{
if(a[i][j]==x)
{
if(b[i][j]>1)
{
b[i][j]--;
j=a[i].size()+1;
}
else
{
a[i][j]=0;
b[i][j]=0;
j=a[i].size()+1;
nrel--;
}
}
}
}
int main()
{
f>>n>>u>>p;
for(i=1;i<=n;i++) f>>c[i];
for(i=1;i<=n;i++)
{
include(c[i]);
for(j=i+1;j<=n;j++)
{
include(c[i]);
if(nrel>max(p,u))
{
jp=j;
j=n+1;
}
else if(nrel>=min(u,p)&&nrel<=max(u,p)) rez++;
}
for(j=jp;j>=i+1;j--)
{
erase(c[j]);
}
erase(c[i]);
}
g<<rez<<" ";
return 0;
}