제출 #1182339

#제출 시각아이디문제언어결과실행 시간메모리
1182339Ahmed_Kaaniche항공 노선도 (JOI18_airline)C++20
0 / 100
44 ms11148 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...