func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     int n;     cin >> n;     vector<long long int> s(n);     for (int i = 0; i < n; ++i) cin >> s[i];     int q;     cin >> q;     sort(s.begin(), s.end());     int slope0 = 1;     for (int i = 1; i < n; ++i)       if (s[i] != s[i - 1]) ++slope0;     map<long long int, int> freq;     for (int i = 1; i < n; ++i) {       long long int delta = s[i] - s[i - 1];       if (delta == 0) continue;       delta--;       if (freq.find(delta) == freq.end())         freq[delta] = 1;       else         freq[delta] = freq[delta] + 1;     }     map<long long int, int> slope;     map<long long int, long long int> obj;     long long int prev = slope0;     for (map<long long int, int>::iterator it = freq.begin(); it != freq.end();          ++it) {       slope[it->first] = prev - it->second;       prev = prev - it->second;     }     if (slope.find(0) == slope.end()) slope[0] = slope0;     for (map<long long int, int>::iterator it = slope.begin();          it != slope.end();) {       if (it->first == 0) obj[0] = slope0;       long long int y0 = obj[it->first];       long long int change = it->second;       long long int base = it->first;       ++it;       if (it != slope.end()) obj[it->first] = y0 + change * (it->first - base);     }     for (int i = 0; i < q; ++i) {       long long int l, r;       cin >> l >> r;       map<long long int, long long int>::iterator it = obj.lower_bound(r - l);       if (it->first == (r - l))         cout << it->second <<    ;       else {         it--;         long long int ans =             obj[it->first] + (r - l - it->first) * slope[it->first];         cout << ans <<    ;       }     }     cout <<   n ;     return 0;   }   