#include "Alicelib.h"
#include <cassert>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
void Alice(int N, int M, int A[], int B[]) {
    int cnt = 0;
    InitG(3 * N, M + (N * N) + (N * (N + 3) / 2));
    
    //1
    for (int i = 0; i < M; i++) {
        MakeG(cnt, A[i], B[i]);
        cnt++;// M
    }
    
    //2
    for (int i = N; i < 2 * N; i++) {
        for (int j = 0; j < N; j++) {
            MakeG(cnt, i, j);
            cnt++;// M + N*N
        }
    }
    
    //3
    for (int i = 2 * N,tmp=0; i < 3 * N;tmp++, i++) {
        //spc
        for (int j = N; j <= N + tmp; j++) {
            MakeG(cnt, i, j);
            cnt++;
        }
        //e
        MakeG(cnt, i, tmp);
        cnt++;
    }
}
#include "Boblib.h"
#include <cassert>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
void Bob(int V, int U, int C[], int D[]) {
    int n = V / 3;
    int m = U - (n * n) - (n * (n + 3) / 2);
    vector<set<int>> arr(V);
    vector<bool> spc(V, false);
    multiset<set<int>> s;
    map<int, int> mp;
    
    InitMap(n, m);
    
    //arr
    for (int i = 0; i < U; i++) {
        arr[C[i]].insert(D[i]);
    }
    //s
    for (int i = 0; i < V; i++) {
        if (arr[i].size() == n)
            s.insert(arr[i]);
    }
    //spc 1
    for (int i = 0; i < V; i++) {
        if (arr[i].size() == n && s.count(arr[i]) == n)
            spc[i] = true;
    }
    //spc 2
    for (int i = 0; i < V; i++) {
        if (!spc[i]) {
            int nb_spc = 0, x = -1;
            for (auto &elt: arr[i]) {
                if (spc[elt])
                    nb_spc++;
                else
                    x = elt;
            }
            //is spc 2 ?
            if (nb_spc > 0) {
                mp[x] = nb_spc - 1;
                spc[i] = true;
            }
        }
    }
    
    
    for (int i = 0; i < U; i++) {
        if (mp.count(C[i]) && mp.count(D[i])) {
            MakeMap(mp[C[i]], mp[D[i]]);
        }
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |