#include "Alicelib.h"
#include <cassert>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define ll long long
#define fi first
#define se second
#define pb push_back
#define pob pop_back
void Alice(int N, int M, int A[], int B[]) {
int cnt = 0;
InitG(3 * N, M + N * N + N * (N + 3) / 2);
for (int i = 0; i < M; ++i) {
MakeG(cnt++, A[i], B[i]);
}
for (int i = N; i < 2 * N; ++i) {
for (int j = 0; j < N; ++j) {
MakeG(cnt++, i, j);
}
}
for (int i = 2 * N; i < 3 * N; ++i) {
for (int j = 0; j <= i - 2 * N; ++j) {
MakeG(cnt++, i,N + j);
}
MakeG(cnt++, i, i - 2 * N);
}
}
#include "Boblib.h"
#include <cassert>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define ll long long
#define fi first
#define se second
#define pb push_back
#define pob pop_back
void Bob(int V, int U, int C[], int D[]) {
int n = V / 3, m = U - n * n - n * (n + 3) / 2;
vector<set<int>> arr(V);
vector<bool> spc(V, 0);
multiset<set<int>> s;
map<int, int> mp;
for (int i = 0; i < U; ++i) {
arr[C[i]].insert(D[i]);
}
for (int i = 0; i < V; ++i) {
if (arr[i].size() == n)
s.insert(arr[i]);
}
for (int i = 0; i < V; ++i) {
if (arr[i].size() == n && s.count(arr[i]) == n)
spc[i] = 1;
}
for (int i = 0; i < V; ++i) {
if (!spc[i]) {
int cnt = 0, x = -1;
for (auto &elt: arr[i]) {
if (spc[elt])
cnt++;
else
x = elt;
}
if (cnt > 0) {
mp[x] = cnt - 1;
spc[i] = 1;
}
}
}
InitMap(n, m);
for (int i = 0; i < U; ++i) {
if (mp.count(C[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... |