Submission #1221394

#TimeUsernameProblemLanguageResultExecution timeMemory
1221394PenguinsAreCuteTwo Transportations (JOI19_transportations)C++17
8 / 100
115 ms6348 KiB
#include "Azer.h"
#include <bits/stdc++.h>
using namespace std;
using ii = pair<int,int>;
namespace {
int N;
vector<bool> res;
vector<int> x, d, dist;
}
void InitA(int N, int A, std::vector<int> U, std::vector<int> V,
           std::vector<int> C) {
	::N = N;
	x.resize(N,0);
	d.resize(N,0);
	dist.resize(N,0);
	for(int i=0;i<A;i++) {
		x[U[i]] ^= V[i];
		x[V[i]] ^= U[i];
		d[U[i]]++;
		d[V[i]]++;
		dist[U[i]] ^= C[i];
		dist[V[i]] ^= C[i];
	}
}
void ReceiveA(bool x) {
	res.push_back(x);
}
std::vector<int> Answer() {
	for(int i=0;i<N;i++) {
		for(int j=0;j<11;j++)
			x[i] ^= (res[20*i+j]<<j);
		for(int j=0;j<9;j++)
			dist[i] ^= (res[20*i+j+11]<<j);
	}
	int cnt = 0;
	for(int i=20*N;i<int(res.size());i++) {
		if(res[i])
			cnt++;
		else
			d[cnt]++;
	}
	d[0] = -1;
	int ord[N];
	cnt = 0;
	for(int i=0;i<N;i++)
		for(int j=i;d[j]==1;j=x[j]) {
			ord[cnt++] = j;
			d[j]--;
			d[x[j]]--;
			x[x[j]] ^= j;
			dist[x[j]] ^= dist[j];
		}
	dist[0] = 0;
	while(cnt--)
		dist[ord[cnt]] += dist[x[ord[cnt]]];
	return dist;
}
#include "Baijan.h"
#include <bits/stdc++.h>
using namespace std;
using ii = pair<int,int>;
void InitB(int N, int B, std::vector<int> S, std::vector<int> T,
           std::vector<int> D) {
	vector<int> x(N,0), d(N,0), dist(N,0);
	for(int i=0;i<B;i++) {
		x[S[i]] ^= T[i];
		x[T[i]] ^= S[i];
		dist[S[i]] ^= D[i];
		dist[T[i]] ^= D[i];
		d[S[i]]++;
		d[T[i]]++;
	}
	for(int i=0;i<N;i++) {
		for(int j=0;j<11;j++)
			SendB(x[i]&(1<<j));
		for(int j=0;j<9;j++)
			SendB(dist[i]&(1<<j));
	}
	for(int i=0;i<N;i++) {
		for(int j=0;j<d[i];j++)
			SendB(0);
		SendB(1);
	}
}
void ReceiveB(bool y) {}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...