Submission #768205

#TimeUsernameProblemLanguageResultExecution timeMemory
768205AdamGSAirline Route Map (JOI18_airline)C++17
100 / 100
526 ms24724 KiB
#include "Alicelib.h"
#include<bits/stdc++.h>
using namespace std;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
void Alice(int n, int m, int A[], int B[]) {
	if(n==1) {
		InitG(1, 0);
		return;
	}
	vector<pair<int,int>>kraw;
	rep(i, m) kraw.pb({A[i], B[i]});
	rep(i, n) rep(j, 10) if(i&(1<<j)) kraw.pb({i, n+j});
	rep(i, 9) kraw.pb({n+i, n+i+1});
	rep(i, n+10) kraw.pb({i, n+10});
	rep(i, 10) kraw.pb({n+i, n+11});
	InitG(n+12, kraw.size());
	rep(i, kraw.size()) MakeG(i, kraw[i].st, kraw[i].nd);
}
#include "Boblib.h"
#include<bits/stdc++.h>
using namespace std;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
const int LIM=1020;
int deg[LIM], czy[LIM], typ[LIM], deg2[LIM], odw[LIM], nr[LIM];
void Bob(int v, int u, int C[], int D[]) {
	if(v==1) {
		InitMap(1, 0);
		return;
	}
	rep(i, u) {
		++deg[C[i]];
		++deg[D[i]];
	}
	int jaki=-1;
	rep(i, v) if(deg[i]==v-2) jaki=i;
	typ[jaki]=1;
	rep(i, u) {
		if(C[i]==jaki) czy[D[i]]=1;
		if(D[i]==jaki) czy[C[i]]=1;
	}
	int jaki2=-1;
	rep(i, v) if(i!=jaki && !czy[i]) jaki2=i;
	typ[jaki2]=2;
	rep(i, u) {
		if(C[i]==jaki2) typ[D[i]]=3;
		if(D[i]==jaki2) typ[C[i]]=3;
	}
	rep(i, u) if(typ[C[i]]==3 && typ[D[i]]==3) {
		++deg2[C[i]];
		++deg2[D[i]];
	}
	vector<int>kand;
	rep(i, v) if(typ[i]==3 && deg2[i]==1) kand.pb(i);
	if(deg[kand[0]]<deg[kand[1]]) swap(kand[0], kand[1]);
	int akt=kand[0];
	rep(i, 10) {
		odw[akt]=1;
		int nast=-1;
		rep(j, u) {
			if(C[j]==akt && !typ[D[j]]) nr[D[j]]+=1<<i;
			if(D[j]==akt && !typ[C[j]]) nr[C[j]]+=1<<i;
			if(C[j]==akt && typ[D[j]]==3 && !odw[D[j]]) nast=D[j];
			if(D[j]==akt && typ[C[j]]==3 && !odw[C[j]]) nast=C[j];
		}
		akt=nast;
	}
	vector<pair<int,int>>kraw;
	rep(i, u) if(!typ[C[i]] && !typ[D[i]]) kraw.pb({nr[C[i]], nr[D[i]]});
	InitMap(v-12, kraw.size());
	rep(i, kraw.size()) MakeMap(kraw[i].st, kraw[i].nd);
}

Compilation message (stderr)

Alice.cpp: In function 'void Alice(int, int, int*, int*)':
Alice.cpp:4:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    4 | #define rep(a, b) for(int a = 0; a < (b); ++a)
      |                                    ^
Alice.cpp:21:2: note: in expansion of macro 'rep'
   21 |  rep(i, kraw.size()) MakeG(i, kraw[i].st, kraw[i].nd);
      |  ^~~

Bob.cpp: In function 'void Bob(int, int, int*, int*)':
Bob.cpp:4:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    4 | #define rep(a, b) for(int a = 0; a < (b); ++a)
      |                                    ^
Bob.cpp:56:2: note: in expansion of macro 'rep'
   56 |  rep(i, kraw.size()) MakeMap(kraw[i].st, kraw[i].nd);
      |  ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...