Submission #1306128

#TimeUsernameProblemLanguageResultExecution timeMemory
1306128nicolo_010Airline Route Map (JOI18_airline)C++20
22 / 100
207 ms50224 KiB
#include "Alicelib.h"
#include <bits/stdc++.h>
using namespace std;

void Alice( int n, int m, int A[], int B[] ){
	vector<vector<int>> edges(m);
	for (int i=0; i<m; i++) {
		edges[i] = {A[i], B[i]};
	}
	for (int i=n; i<n+50; i++) {
		for (int j=i+1; j<n+50; j++) {
			edges.push_back({i, j});
		}
	}
	for (int i=n; i<n+50; i++) {
		if (i-n >= n) break;
		for (int j=i-n; j < n; j++) {
			edges.push_back({j, i});
		}
	}
	m = edges.size();
	InitG(n+50, m);
	for (int i=0; i<m; i++) {
		MakeG(i, edges[i][0], edges[i][1]);
	}
}

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

vector<vector<int>> adj;

bool cmp(int a, int b) {
	return adj[a].size()>adj[b].size();
}

void Bob( int v, int u, int C[], int D[] ){
	adj.assign(v, {});
	for (int i=0; i<u; i++) {
		int a = C[i];
		int b = D[i];
		adj[a].push_back(b);
		adj[b].push_back(a);
	}
	vector<int> a(v);
	for (int i=0; i<v; i++) {
		a[i] = i;
	}
	sort(a.begin(), a.end(), cmp);
	int n = v-50;
	vector<int> id(v, 0);
	vector<bool> vis(v, false);
	for (int i=0; i<50; i++) {
		vis[a[i]] = true;
	}
	for (int i=0; i<n; i++) {
		for (auto x : adj[a[i]]) {
			if (!vis[x]) id[x]++;
		}
	}
	map<vector<int>, int> mp;
	vector<vector<int>> edges;
	for (int i=0; i<v; i++) {
		if (vis[i]) continue;
		for (auto x : adj[i]) {
			if (vis[x]) continue;
			if (mp.count({id[i]-01, id[x]-1}) || mp.count({id[x]-1, id[i]-1})) continue;
		    edges.push_back({id[i]-1, id[x]-1});
		    mp[{id[i]-1, id[x]-1}] = 1;
		}
	}
	int m = edges.size();
	InitMap(n, m);
	for (int i=0; i<m; i++) {
		MakeMap(edges[i][0], edges[i][1]);
	}
}

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