func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 300010;   pair<pair<int, int>, pair<int, int> > allNums[MAXN * 2];   set<pair<int, int> > startTimes;   pair<int, int> v[MAXN];   int main() {     int N;     scanf( %d , &N);     for (int i = 0; i < N; ++i) {       scanf( %d%d , &v[i].first, &v[i].second);       int L = v[i].second - v[i].first;       allNums[2 * i] = make_pair(make_pair(v[i].first, 0), make_pair(L, i));       allNums[2 * i + 1] = make_pair(make_pair(v[i].second, 1), make_pair(L, i));     }     sort(allNums, allNums + 2 * N);     for (int i = 0; i < 2 * N; ++i) {       if (allNums[i].first.second == 0) {         startTimes.insert(             make_pair(allNums[i].first.first, allNums[i].second.second));         continue;       }       int idx = allNums[i].second.second;       int st = v[idx].first;       set<pair<int, int> >::iterator it = startTimes.find(make_pair(st, idx));       set<pair<int, int> >::iterator snd = startTimes.begin();       if (it == snd) ++snd;       if (snd != startTimes.end() && snd->first <= it->first) {         printf( %d %d n , idx + 1, snd->second + 1);         return 0;       }       startTimes.erase(it);     }     puts( -1 -1 );     return 0;   }   