func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5 + 5;   clock_t timeStart, timeFinish;   void timeBegin() { timeStart = clock(); }   void timeEnd() { timeFinish = clock(); }   void timeDuration() {     double time_taken = double(timeFinish - timeStart) / double(CLOCKS_PER_SEC);     cout <<  Time taken by program is :   << fixed << time_taken          << setprecision(5);     cout <<   sec   << endl;   }   int blo[1000005];   bool fun(const pair<pair<int, int>, int> &x,            const pair<pair<int, int>, int> &y) {     if (blo[x.first.first] != blo[y.first.first]) {       return blo[x.first.first] < blo[y.first.first];     }     if (blo[x.first.first] % 2) {       return x.first.second > y.first.second;     } else {       return x.first.second < y.first.second;     }   }   void solve() {     int n;     cin >> n;     int x[n + 3], y[n + 3];     vector<pair<pair<int, int>, int>> v;     for (int i = 1; i <= n; i++) {       cin >> x[i] >> y[i];       v.push_back({{x[i], y[i]}, i});     }     for (int i = 0; i <= 1000000; i++) {       blo[i] = i / 1000;     }     sort(v.begin(), v.end(), fun);     for (int i = 0; i < n; i++) cout << v[i].second <<    ;     cout <<   n ;     return;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int t = 1;     while (t--) solve();     return 0;   }   