Submission #1177174

#TimeUsernameProblemLanguageResultExecution timeMemory
1177174simona1230Airline Route Map (JOI18_airline)C++17
22 / 100
43 ms11152 KiB
#include "Alicelib.h"
#include <cassert>
#include <cstdio>

void Alice( int N, int M, int A[], int B[] )
{
    int cntv=0,cnte=0;
	for(int i=0;i<M;i++)
    {
        cntv+=A[i];
        cntv+=B[i];
        cntv+=6;

        cnte+=A[i];
        cnte+=B[i];
        cnte+=7;
    }
    InitG(cntv+N,cnte);
    int idv=0,ide=0;
    for(int i=0;i<M;i++)
    {
        int x=idv;

        for(int j=idv+1;j<=idv+A[i]+2;j++)
            MakeG(ide++,j-1,j);
        MakeG(ide++,idv+A[i]+2,idv);

        idv=idv+A[i]+3;
        int y=idv;

        for(int j=idv+1;j<=idv+B[i]+2;j++)
            MakeG(ide++,j-1,j);
        MakeG(ide++,idv+B[i]+2,idv);
        idv=idv+B[i]+3;

        MakeG(ide++,x,y);
    }
}

#include "Boblib.h"
#include <bits/stdc++.h>
using namespace std;

int _used[100000];
vector<int> v[100000];
int num[100000];
void Bob( int V, int U, int C[], int D[] )
{
	for(int i=0;i<U;i++)
    {
        v[C[i]].push_back(D[i]);
        v[D[i]].push_back(C[i]);
    }

    int vr=0,ed=0;
    for(int i=0;i<V;i++)
        if(v[i].size()==0)vr++;

    vector<pair<int,int> > ans;
    for(int i=0;i<V;i++)
    {
        if(v[i].size()==2)continue;

        int p=-1,s=i,h=0;
        while(1)
        {
            _used[s]=1;
            int nxt=-1;
            for(int j=0;j<v[s].size();j++)
                if(!_used[v[s][j]]&&v[v[s][j]].size()==2)
                    nxt=v[s][j];
            if(nxt==-1)break;
            s=nxt;
            h++;
        }

        num[i]=h-2;
        for(int j=0;j<v[i].size();j++)
            if(_used[v[i][j]]&&v[v[i][j]].size()==3)
                ans.push_back({num[v[i][j]],num[i]});
    }

    InitMap(vr,ans.size());
    for(int i=0;i<ans.size();i++)
        MakeMap(ans[i].first,ans[i].second);
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...