Cod sursa(job #2559546)

Utilizator victorzarzuZarzu Victor victorzarzu Data 27 februarie 2020 13:07:51
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
ifstream f("secv5.in");
ofstream g("secv5.out");
unordered_map<int,int> um;
unordered_map<int,int>::iterator it;
vector<int> v;
int n, l, u, x;
ll ans = 0;
void Read()
{
    f>>n>>l>>u;
    for(int i = 1;i <= n;++i)
    {
        f>>x;
        it = um.find(x);
        if(it == um.end())
            um.insert({x,1});
        else
            (*it).second++;
    }
    f.close();
}

void Solve()
{
    for(it = um.begin();it != um.end();++it)
        v.push_back((*it).second);
    for(vector<int>::iterator i = v.begin();i != v.end();++i)
    {

        for(int j = l;j <= u;++j)
            {
                ll curent = 1;
                if(i + j <= v.end())
                {
                    for(vector<int>::iterator u = i;u < i + j;++u)
                        curent *= *u;
                    ans += curent;
                }
            }
    }
    g<<ans<<'\n';
    g.close();
}

int main()
{
    Read();
    Solve();
    return 0;
}