Pagini recente » Istoria paginii runda/blabla | Cod sursa (job #1702885) | Atasamentele paginii Clasament oji.2k162 | Atasamentele paginii Clasament sesiune_igorjeana | Cod sursa (job #1279670)
#include <cstdio>
#include <fstream>
#include <unordered_map>
using namespace std;
unsigned long n,l,u,i,v[1065000];
long long Count(unsigned long nr) {
unordered_map<unsigned long, long> stiva;
int st=1;
long long sol=0;
for (unsigned long i=1;i<=n;++i) {
++stiva[v[i]];
while (stiva.size()>nr) {
--stiva[v[st]];
if (stiva[v[st]]==0)
stiva.erase(v[st]);
++st;
}
sol+=i-st+1;
}
return sol;
}
int main()
{
freopen ("secv5.in","r",stdin);
// freopen ("secv5.out","w",stdout);
ofstream g("secv5.out");
scanf("%ld%ld%ld",&n,&l,&u);
for (i=1;i<=n;i++)
scanf("%ld",&v[i]);
// printf("%Ld",Count(u)-Count(l-1));
g<<Count(u)-Count(l-1);
fclose(stdin);
// fclose(stdout);
g.close();
return 0;
}