Submission #1214569

#TimeUsernameProblemLanguageResultExecution timeMemory
1214569mychecksedadAirline Route Map (JOI18_airline)C++20
37 / 100
89 ms44236 KiB
#include "Alicelib.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define vi vector<int>
const int N = 1e6+100, M = 1e5+10, K = 52, MX = 30;

void Alice( int n, int m, int A[], int B[] ){
	vector<vector<bool>> E(n, vector<bool>(n));
	for(int i = 0; i <m; ++i) if(A[i]> B[i]) swap(A[i], B[i]); 
	for(int i = 0; i <m; ++i) E[A[i]][B[i]] = 1;


	vector<pii> P;
	vi deg(n);
	for(int i = 0; i < n; ++i){
		for(int j = i + 1; j < n; ++j){
			if(E[i][j]){
				P.pb({i, j});
				deg[i]++;
				deg[j]++;
			}
		}
	}
	for(int i = 0; i < n; ++i){
		int cur = n;
		for(int j = 0; j < i + n - deg[i]; ++j){
			P.pb({cur++, i});
		}
	}
	for(int i = n; i < 3*n+1; ++i){
		for(int j = i+1; j < 3*n+1; ++j) P.pb({i, j});
	}
	int cnt = 0;
	InitG(n * 3 + 1, int(P.size()));
	for(auto [x, y]: P){
		// cerr << x << ' ' << y << '\n';
		MakeG(cnt++, x, y);
	}
}
#include "Boblib.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define vi vector<int>
const int N = 1e6+100, M = 1e5+10, K = 52, MX = 30;

void Bob( int nn, int mm, int C[], int D[] ){
	int n = (nn - 1) / 3;
	vi deg(nn);
	vector<vector<bool>> E(nn, vector<bool>(nn));
	for(int i = 0; i < mm; ++i){
		deg[C[i]]++;
		deg[D[i]]++;
		E[C[i]][D[i]] = E[D[i]][C[i]] = 1;
		// cerr << C[i] << ' ' << D[i] << '\n';
	}
	vi node(n);
	for(int i = 0; i < nn; ++i){
		// cerr << deg[i] << ' ';
		if(deg[i] - n < n){
			node[deg[i] - n] = i;
		}
	}
	vector<pii> P;
	for(int i = 0; i < n; ++i){
		for(int j = i + 1; j < n; ++j){
			int v = node[i], u = node[j];
			if(E[u][v]) P.pb({i, j});
		}
	}
	// cerr << P.size() << '\n';
	InitMap(n, int(P.size()));
	for(auto [x, y]: P) MakeMap(x, y);
}

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