This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define x  first
#define y  second
#define pb push_back
#define pr pair < int, int > 
#define forn(i, a, b)   for(int i=a; i<=b; ++i)
#define repn(i, a, b)   for(int i=a; i <b; ++i)
const int N = 1e5 + 10;
vector < pair < pr, int > > v;
multiset < pair < pr, int > > ms;
int n, w;
vector < pr > e[N][5];
bool visit[N];
vector < int > ans;
pr p[N];
istream & operator >> (istream &is, pr &p) {
    is >> p.x >> p.y;
    return is;
}
int direction(pr &pa, pr &pb) {
    if (pb.x == pa.x) {
        if (pb.y > pa.y) return 0;
        return 2;
    }
    if (pb.x > pa.x) return 1;
    return 3;
}
int go(int u, int dir = 0) {
    if (visit[u]) return u;
    visit[u] = true;
    repn(i, 0, 4) {
        int nxt = ( (dir + 1) - i + 4 ) % 4;
        if (e[u][nxt].empty()) continue;
        auto ed = e[u][nxt].front();
        e[u][nxt].clear();
        int v = ed.y;
        e[v][(nxt + 2) % 4].clear();
        int loop = go(v, nxt);
        if (!loop) {
            ans.pb(ed.x);
            continue;
        }
        if (loop != u) {
            visit[u] = false;
            return loop;
        }
    }
    visit[u] = false;
    return 0;
}
int main() {
    ios::sync_with_stdio(0);
    cin >> n;
    forn(i, 1, n) {
        cin >> p[i];
        v.pb({p[i], i});
    }
    cin >> w;
    forn(i, 1, w) {
        int u, v;
        cin >> u >> v;
        e[u][direction(p[u], p[v])].pb({i, v});
        e[v][direction(p[v], p[u])].pb({i, u});
    }
    sort(v.begin(), v.end());
    for(auto st: v) go(st.y);
    cout << ans.size() << '\n';
    for(auto id: ans) cout << id << '\n';
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |