Language: C++

#include <vector>
#include <cstdio>
using namespace std;
??
struct FenwickTree {
????????typedef int T;
????????vector<T> v;
????????void init(int n) { v.assign(n, 0); }
????????void add(int i, T x) {
????????????????for(; i < (int)v.size(); i |= i + 1) v[i] += x;
????????}
????????T sum(int i) const {?????? //[0, i)
????????????????T r = 0;
????????????????for(-- i; i >= 0; i = (i & (i + 1)) - 1) r += v[i];
????????????????return r;
????????}
????????T sum(int left, int right) const {?? //[left, right)
????????????????return sum(right) - sum(left);
????????}
};
??
int main() {
????????int N;
????????while(~scanf("%d", &N)) {
????????????????vector<int> p(N);
????????????????for(int i = 0; i < N; ++ i)
????????????????????????scanf("%d", &p[i]), -- p[i];
????????????????int BlockSize = 200, NumBlocks = N / BlockSize + 1;
????????????????vector<vector<long long> > memo(NumBlocks, vector<long long>(N));
????????????????FenwickTree ft;
????????????????for(int bi = 0; bi < NumBlocks; ++ bi) {
????????????????????????vector<long long> &v = memo[bi];
????????????????????????int i = bi * BlockSize;
????????????????????????{
????????????????????????????????ft.init(N);
????????????????????????????????long long sum = 0;
????????????????????????????????for(int j = i; j < N; ++ j) {
????????????????????????????????????????sum += (j - i) - ft.sum(p[j]);
????????????????????????????????????????v[j] = sum;
????????????????????????????????????????ft.add(p[j], 1);
????????????????????????????????}
????????????????????????}
????????????????????????{
????????????????????????????????ft.init(N);
????????????????????????????????long long sum = 0;
????????????????????????????????for(int j = i - 1; j >= 0; -- j) {
????????????????????????????????????????sum += ft.sum(p[j]);
????????????????????????????????????????v[j] = sum;
????????????????????????????????????????ft.add(p[j], 1);
????????????????????????????????}
????????????????????????}
????????????????}
????????????????ft.init(N);
????????????????int Q;
????????????????scanf("%d", &Q);
????????????????for(int ii = 0; ii < Q; ++ ii) {
????????????????????????int l; int r;
????????????????????????scanf("%d%d", &l, &r), -- l, -- r;
????????????????????????int bl = (l + BlockSize - 1) / BlockSize, br = (r - 1) / BlockSize;
????????????????????????long long ans = 0;
????????????????????????if(bl > br) {
????????????????????????????????for(int i = r; i >= l; -- i) {
????????????????????????????????????????ans += ft.sum(p[i]);
????????????????????????????????????????ft.add(p[i], 1);
????????????????????????????????}
????????????????????????????????for(int i = l; i <= r; ++ i)
????????????????????????????????????????ft.add(p[i], -1);
????????????????????????} else {
????????????????????????????????int L = bl * BlockSize, R = br * BlockSize;
????????????????????????????????ans += memo[bl][r];
????????????????????????????????ans += memo[br][l];
????????????????????????????????if(bl < br)
????????????????????????????????????????ans -= memo[bl][R - 1];
????????????????????????????????for(int i = R; i <= r; ++ i)
????????????????????????????????????????ft.add(p[i], 1);
????????????????????????????????for(int i = l; i < L; ++ i)
????????????????????????????????????????ans += ft.sum(p[i]);
????????????????????????????????for(int i = R; i <= r; ++ i)
????????????????????????????????????????ft.add(p[i], -1);
????????????????????????}
????????????????????????printf("%lld\n", ans); fflush(stdout);
????????????????}
????????}
????????return 0;
}

Compiler output:
a.cc:4:1: error: expected unqualified-id before '?' token
    4 | ??
      | ^
a.cc:21:1: error: expected unqualified-id before '?' token
   21 | ??
      | ^