Cod sursa(job #3353884)

Utilizator mrvalentynTime Limit Exceeded mrvalentyn Data 12 mai 2026 12:54:19
Problema Secventa 5 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.41 kb
/*  
    * author: qvalentin  
    * https://codeforces.com/profile/qvalentin
    * 
    * It's you, it'll always be you *
    
*/

#include <bits/stdc++.h>  
using namespace std;  
#define ull unsigned long long  
#define ll long long  
#define pb push_back  
#define fastio ios_base::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr); 
const int MOD = 1e9+7;
int di[4]={0,0,-1,1};  
int dj[4]={-1,1,0,0};  
      
string FILENAME="secv5";  
ifstream f(FILENAME+".in");  
ofstream g(FILENAME+".out");  

int n,l,u;


//cate subsecv au k elemente diff
ll cnt(vector<int>& v, int k){
        unordered_map<int,int> frq;
        ll ans = 0;

        int st = 1;
        int dist = 0;
        //two poiinters
        for(int dr = 1; dr <= n; ++dr){
                if(frq[v[dr]] == 0)dist++;
                frq[v[dr]]++;
                
                while(dist > k) {
                        frq[v[st]]--;
                        if(frq[v[st]] == 0) dist--;
                        st++;
                }

                ans += (dr-st+1); //adaug toate subscv
                
        }
        return ans;
}


signed main(){  
        fastio

        #ifndef qv
                #define cin f
                #define cout g
        #endif

        
        cin>>n>>l>>u;
        
        vector<int> v(n+1);
        for(int i=1;i<=n;++i){
                cin>>v[i];
        }

        cout<<cnt(v,u) - cnt(v,l-1);

        return 0;

}