Cod sursa(job #2399877)

Utilizator sichetpaulSichet Paul sichetpaul Data 8 aprilie 2019 09:55:44
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <unordered_map>
#define DIM (1<<20)+1
#define ll long long
using namespace std;
int v[DIM],n;
unordered_map <int,int> fr;
ll solve(int cnt) {
    int i,j=1,cate=0;ll ans=0;
    for (i=1;i<=n;++i)
        fr[v[i]]=0;

    for (i=1;i<=n;++i) {
        ++fr[v[i]];
        if (fr[v[i]]==1) ++cate;
        while (cate>cnt && j<i) {
            --fr[v[j]];
            if (fr[v[j]]==0) --cate;
            ++j;
        }
        ans+=i-j+1;
    }
      return ans;
}
int main()
{    int l,u,i;
    ifstream f("secv5.in");
    ofstream g("secv5.out");
    f>>n>>l>>u;
    for (i=1;i<=n;++i)
       f>>v[i];

      g<<solve(u)-solve(l-1)<<'\n';

    return 0;
}