Submission #1184199

#TimeUsernameProblemLanguageResultExecution timeMemory
1184199amine_arouaAirline Route Map (JOI18_airline)C++20
37 / 100
58 ms22260 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[] ){
	vector<vector<int>> group(N);
	int cnt = 0;
	for(int i = 0 ; i < N ; i++)
	{
		for(int j = 0 ;j < i + 3 ; j++)
		{
			group[i].push_back(cnt++);
		}
	}
	vector<pair<int ,int>> edgs;
	for(int i = 0 ; i < N ; i++)
	{
		int s = (int)group[i].size();
		for(int j = 0 ; j < s ; j++)
		{
			edgs.push_back({group[i][j] , group[i][(j + 1) % s]});
		}
	}
	for(int i = 0 ; i < M ; i++)
	{
		edgs.push_back({group[A[i]][0] , group[B[i]][0]});
	}
	InitG(cnt , (int)edgs.size());
	for(int i = 0 ; i < (int)edgs.size() ; i++)
	{
		MakeG(i , edgs[i].first , edgs[i].second);
	}
}

#include "Boblib.h"
#include <cassert>
#include <cstdio>
#include<bits/stdc++.h>
using namespace std;
static vector<bool> vis;
static vector<vector<int>> adj;
static vector<int> id;
static vector<int> cumul;
static void dfs(int x)
{
	if(vis[x])
		return ;
	vis[x] = 1;
	cumul.push_back(x);
	if((int)adj[x].size() > 2)
		return ;
	for(auto u : adj[x])
		dfs(u);
}
void Bob( int V, int U, int C[], int D[] ){
	vis.assign(V , 0);
	adj.assign(V , {});
	id.assign(V , 0);
	cumul.clear();
	for(int i = 0 ; i < U ; i++)
	{
		adj[C[i]].push_back(D[i]);
		adj[D[i]].push_back(C[i]);
	}
	int mx = 0;
	for(int i = 0 ; i < V ; i++)
	{
		if((int)adj[i].size() == 2 && !vis[i])
		{
			dfs(i);
			int cte = (int)cumul.size() - 3;
			mx = max(mx , cte);
			for(auto c : cumul)
			{
				id[c] = cte;
			}
			cumul.clear();
		}
	}
	vector<pair<int ,int>> edgs;
	for(int i = 0 ; i < U ; i++)
	{
		if((int)adj[C[i]].size() > 2 && (int)adj[D[i]].size() > 2)
		{
			edgs.push_back({id[C[i]] , id[D[i]]});
		}
	}
	InitMap(mx + 1 , (int)edgs.size());
	for(auto p : edgs)
	{
		MakeMap(p.first , p.second);
	}
}

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