10个wa
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define fr first
#define se second
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
const int M=5e4+5;
int n,m,k,a[M],curr,curl,cnt[M],now,bl;
ll ans[M],s;
struct query{
int id,l,r;
}q[M];
bool cmp(query x,query y){
return (x.l/bl)==(y.l/bl)? x.r<y.r:x.l<y.l;
}
void add(int pos){
s+=cnt[pos]*2+1;
++cnt[pos];
}
void del(int pos){
s-=cnt[pos]*2-1;
--cnt[pos];
}
int main(){
FAST;
cin>>n>>m>>k;
bl=sqrt(n);
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>q[i].l>>q[i].r;
q[i].id=i;
}
sort(q+1,q+1+n,cmp);
for(int i=1;i<=m;i++){
int ql=q[i].l,qr=q[i].r;
while(curl<ql) del(curl++);
while(curl>ql) add(--curl);
while(curr>qr) del(curr--);
while(curr<qr) add(++curr);
ans[q[i].id]=s;
}
for(int i=1;i<=m;i++){
cout<<ans[i]<<endl;
}
return 0;
}