func_code_string: #include <bits/stdc++.h>   using namespace std;   ifstream fin( test.in );   struct intr {     int l, r, id;   };   intr q[200005];   int p, n, qq;   long long sol;   int a[200005];   long long rez[200005];   int mp[5 * 200005];   bool cmp(intr &q1, intr &q2) {     return (q1.r / p < q2.r / p || (q1.r / p == q2.r / p && q1.l < q2.l));   }   void add(int x) {     int v = mp[x];     sol = sol - 1LL * v * v * x;     sol = sol + 1LL * (v + 1) * (v + 1) * x;     mp[x]++;   }   void del(int x) {     int v = mp[x];     sol = sol - 1LL * v * v * x;     if (v >= 1) {       sol = sol + 1LL * (v - 1) * (v - 1) * x;       mp[x]--;     }   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int i, lx, rx;     cin >> n >> qq;     for (i = 1; i <= n; i++) cin >> a[i];     p = sqrt(n);     for (i = 1; i <= qq; i++) {       cin >> q[i].l >> q[i].r;       q[i].id = i;     }     sort(q + 1, q + qq + 1, cmp);     lx = 1;     rx = 0;     sol = 0;     for (i = 1; i <= qq; i++) {       while (q[i].r > rx) add(a[++rx]);       while (q[i].r < rx) del(a[rx--]);       while (q[i].l > lx) del(a[lx++]);       while (q[i].l < lx) add(a[--lx]);       rez[q[i].id] = sol;     }     for (i = 1; i <= qq; i++) cout << rez[i] <<   n ;   }   