Pagini recente » Cod sursa (job #3189672) | Cod sursa (job #676490) | Cod sursa (job #637087) | Cod sursa (job #711208) | Cod sursa (job #1528433)
# include <fstream>
# include <algorithm>
# include <vector>
# include <unordered_map>
# define NR 1100000
# define f first
# define s second
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
unordered_map <unsigned int, int> M;
int i,j,n,m,L,U;
int cod[NR];
unsigned int A[NR];
// numarul de secvente cu pana la L elemente diferite
long long numara (int L) {
long long sol=0, Edif=0;
int ci=1; Edif=1; M[A[1]]=1;
if (L) sol=1;
for (int i=2; i<=n; ++i) {
++M[A[i]]; if (M[A[i]]==1) ++Edif;
while (Edif>L) {
--M[A[ci]];
if (M[A[ci]]==0) --Edif;
++ci;
}
sol+=i-ci+1;
}
//curat
while (ci<=n) {
--M[A[ci]];
++ci;
}
return sol;
}
int main ()
{
f>>n>>L>>U;
for (i=1; i<=n; ++i)
f>>A[i];
g<<numara(U) - numara(L-1);
return 0;
}