Submission #999477

#TimeUsernameProblemLanguageResultExecution timeMemory
999477jcelinBroken Device (JOI17_broken_device)C++14
100 / 100
39 ms2852 KiB
#include<bits/stdc++.h>
#include "Annalib.h"
using namespace std;

typedef vector<int> vi;
typedef long long ll;
typedef vector<ll> vll;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;

#define PB push_back
#define PPB pop_back
#define X first
#define Y second
#define all(x) (x).begin(), (x).end()
/*
int niz[300], ret[300];
void Set(int x, int y){
	if(!del[x]) ret[x] = y;
}
*/

void Anna(int n, ll x, int k, int* p){
	srand(19719);
	vi pos, del(151, 0);
	pos.clear();
	for(int i=0; i<n; i++) pos.PB(i);
	random_shuffle(all(pos));
	
	for(int i=0; i<k; i++) del[p[i]] = 1;
	
	for(int i=0; i<75; i++){
		int cr = x % 3;
		
		int a = pos[i * 2];
		int b = pos[i * 2 + 1];
		
		
		if(cr == 0 and !del[b]){
			Set(a, 0);
			Set(b, 1);
		}else if(cr == 1 and !del[a]){
			Set(a, 1);
			Set(b, 0);
		}else if(cr == 2 and !del[a] and !del[b]){
			Set(a, 1);
			Set(b, 1);
		}else{
			Set(a, 0);
			Set(b, 0);
			continue;
		}
		x /= 3;
	}
}

/*
int main(){
	int n, k;
	ll x;
	cin >> n >> x >> k;
	for(int i=0; i<k; i++) cin >> niz[i];
	Anna(150, x, k, niz);
	for(int i=0; i<150; i++) cout << ret[i];
	cout << "\n";
	return 0;
}

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

typedef vector<int> vi;
typedef long long ll;
typedef vector<ll> vll;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;

#define PB push_back
#define PPB pop_back
#define X first
#define Y second
#define all(x) (x).begin(), (x).end()

int niz[300];

ll Bruno(int n, int* p){
	srand(19719);
	vi pos, ret;
	for(int i=0; i<n; i++) pos.PB(i);
	random_shuffle(all(pos));
	
	for(int i=0; i<75; i++){
		int a = pos[i * 2];
		int b = pos[i * 2 + 1];
		int vl = p[a] * 2 + p[b];
		if(vl == 0) continue;
		ret.PB(vl - 1);
	}
	reverse(all(ret));
	
	ll ans = 0;
	for(auto &x : ret) ans *= (ll)3, ans += (ll)x;
	return ans;
}

/*
int main(){
	for(int i=0; i<150; i++){
		char x;
		cin >> x;
		niz[i] = x - '0';
	}
	cout << Bruno(150, niz) << "\n";
	return 0;
}

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