Why my code not working for all test cases in subarrays with distinct elements problem

#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define endl ā€œ\nā€
#define MOD 1000000007
#define fio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
int main()
{
fio;
ll n;cin>>n;
ll a[n];
for(ll i=0;i<n;i++)
cin>>a[i];
unordered_map<ll,ll> m;
ll p=0,q=0;
ll ans=0;
while(q<n){
while(q<n && m.count(a[q])==0){
m[a[q]]=1;
q++;
}
ll x=m.size();
ans+=((x%MOD)((x+1)%MOD)((x+2)%MOD)/6)%MOD;
m.clear();
}
cout<<ans<<endl;

}

@nayakashutosh99
Please see this https://www.geeksforgeeks.org/subarrays-distinct-elements/