제출 #1363152

#제출 시각아이디문제언어결과실행 시간메모리
1363152solution6312항공 노선도 (JOI18_airline)C++17
0 / 100
41 ms19648 KiB
#include "Alicelib.h"
#include <iostream>
#include <cassert>
#include <vector>
using namespace std;
using pii=pair<int, int>;

void InitG(int V, int U);
void MakeG(int pos, int C, int D);

void Alice(int N, int M, int A[], int B[])
{
    vector<pii> E;
    for (int i=0; i<M; i++) E.push_back({A[i], B[i]});
    int cnt=N;
    for (int i=0; i<N; i++)
    {
        for (int j=1; j<=i+2; j++)
        {
            E.push_back({i, cnt++});
        }
    }
    InitG(cnt, E.size());
    for (int i=0; i<E.size(); i++)
    {
        assert(E[i].first!=E[i].second);
        //assert(0<=E[i].first && E[i].first<cnt);
        //assert(0<=E[i].second && E[i].second<cnt);
        MakeG(i, E[i].first, E[i].second);
        //cerr<<E[i].first<<' '<<E[i].second<<endl;
    }
}
#include "Boblib.h"
#include <iostream>
#include <cassert>
#include <vector>
using namespace std;
using pii=pair<int, int>;

void InitMap(int N, int M);
void MakeMap(int A, int B);

void Bob(int V, int U, int C[], int D[])
{
    int deg[V]={0}, id[V];
    for (int i=0; i<V; i++) id[i]=-2;
    for (int i=0; i<U; i++)
    {
        deg[C[i]]++;
        deg[D[i]]++;
    }
    for (int i=0; i<U; i++)
    {
        //cerr<<C[i]<<' '<<D[i]<<endl;
        if (deg[C[i]]==1)
        {
            assert(deg[D[i]]>1);
            id[D[i]]++;
        }
        if (deg[D[i]]==1)
        {
            assert(deg[C[i]]>1);
            id[C[i]]++;
        }
    }
    //for (int i=0; i<V; i++) cerr<<deg[i]<<' '; cerr<<endl;
    //for (int i=0; i<V; i++) cerr<<id[i]<<' '; cerr<<endl;
    int mx=0; vector<pii> E;
    for (int i=0; i<U; i++)
    {
        //cerr<<C[i]<<' '<<D[i]<<endl;
        if (deg[C[i]]==1) assert(id[C[i]]==-2);
        else if (deg[D[i]]==1) assert(id[D[i]]==-2);
        else
        {
            E.push_back({id[C[i]], id[D[i]]});
            mx=max(mx, id[C[i]]);
            mx=max(mx, id[D[i]]);
        }
    }
    InitMap(mx+1, E.size());
    for (auto [U, V]:E) MakeMap(U, V);
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…