제출 #1182965

#제출 시각아이디문제언어결과실행 시간메모리
1182965Ahmed_Kaaniche항공 노선도 (JOI18_airline)C++17
0 / 100
43 ms11152 KiB
#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); 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) { int tmp=i-2*N; for (int j = N; j <= N+tmp; ++j) { MakeG(cnt++, i, j); } MakeG(cnt++, i, i - 2 * N); } }
#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, 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; InitMap(n, m); 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; } } } for (int i = 0; i < U; ++i) { if (!spc[C[i]]) { MakeMap(mp[C[i]], mp[D[i]]); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...