func_code_string: #include <bits/stdc++.h>   using namespace std;   long long power(long long x, long long y, long long p) {     long long res = 1;     x = x % p;     while (y > 0) {       if (y & 1) {         res = (res * x) % p;       }       y = y >> 1;       x = (x * x) % p;     }     return res;   }   long long modInverse(long long a, long long p) { return power(a, p - 2, p); }   long long gcd(long long x, long long y) {     if (x == 0 || y == 0) {       return max(y, x);     }     return gcd(y % x, x);   }   long long gcdExtended(long long a, long long b, long long &x, long long &y) {     if (a == 0) {       x = 0;       y = 1;       return b;     }     long long x1, y1;     long long gcd = gcdExtended(b % a, a, x1, y1);     x = y1 - (b / a) * x1;     y = x1;     return gcd;   };   long long bit[1504];   void update(long long x) {     while (x <= 1500) {       bit[x]++;       x += (x & (-x));     }   }   long long get(long long x) {     long long ret = 0;     while (x) {       ret += bit[x];       x -= (x & (-x));     }     return ret;   }   long long dp[1504][1504];   int main() {     long long n;     scanf( %lld , &n);     vector<long long> a;     for (long long i = 0; i < n; i++) {       long long x;       scanf( %lld , &x);       a.push_back(x);     }     for (long long i = 0; i < n; i++) {       for (long long j = 1; j <= n; j++) bit[j] = 0;       long long here = 0;       for (long long j = i; j < n; j++) {         update(a[j]);         here += get(a[j] - 1);         dp[i][j] = here;       }     }     long long q;     scanf( %lld , &q);     long long tot = dp[0][n - 1];     tot = (n) * (n - 1);     tot /= 2;     tot -= dp[0][n - 1];     tot %= 2;     while (q--) {       long long x, y;       scanf( %lld %lld , &(x), &(y));       long long len = y - x + 1;       long long here = (len) * (len - 1);       here /= 2;       here %= 2;       tot = tot + here;       tot %= 2;       if (tot)         cout <<  odd  << endl;       else         cout <<  even  << endl;     }   }   