Pagini recente » Cod sursa (job #2833996) | Cod sursa (job #45568) | Cod sursa (job #878199) | Cod sursa (job #1116137) | Cod sursa (job #3122804)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
const int NMAX=(1<<20+1);
int N;
unsigned v[NMAX];
ifstream f("secv5.in");
ofstream g("secv5.out");
long long calcul(int dif)
{
unordered_map <unsigned,int> M;
long long nrSec=0;
int nrDif=0,p=1;
for(int i=1;i<=N;i++)
{
if(++M[v[i]]==1)
++nrDif;
while(nrDif>dif&&p<=i)
{
if(--M[v[p]]==0)
--nrDif;
++p;
}
nrSec+=i-p+1;
}
return nrSec;
}
int main()
{
int L,U;
f>>N>>L>>U;
for(int i=1;i<=N;i++)
f>>v[i];
g<<calcul(U)-calcul(L-1);
f.close();
g.close();
return 0;
}