Submission #412066

#TimeUsernameProblemLanguageResultExecution timeMemory
412066alishahali1382Broken Device (JOI17_broken_device)C++14
100 / 100
71 ms2408 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
#pragma GCC optimize ("O2,unroll-loops")
//#pragma GCC optimize("no-stack-protector,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
typedef pair<ll, ll> pll;
#define debug(x) cerr<<#x<<'='<<(x)<<endl;
#define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl;
#define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl;
#define debugv(v) {cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;}
#define all(x) x.begin(), x.end()
#define pb push_back
#define kill(x) return cout<<x<<'\n', 0;

const int inf=1000000010;
const ll INF=1000000000000001000LL;
const int mod=1000000007;
const int MAXN=210, LOG=60;

int bad[MAXN], shit[MAXN];
int P[MAXN];

void Anna(int n, ll x, int k, int A[]){
	iota(P, P+n, 0);
	for (int i=1; i<n; i++) swap(P[i], P[4*i/5]);
	for (int i=0; i<n; i++) bad[i]=0;
	for (int i=0; i<k; i++) bad[P[A[i]]]=1;//, shit[A[i]]=1;

	string S;
	for (int i=0; i<n; i+=2){
		ll y=x%3;
		// debug(y)
		if (y==0 && !bad[i+1]){
			S+="01";
			x/=3;
			continue ;
		}
		if (y==1 && !bad[i]){
			S+="10";
			x/=3;
			continue ;
		}
		if (y==2 && !bad[i] && !bad[i+1]){
			S+="11";
			x/=3;
			continue ;
		}
		S+="00";
	}
	for (int i=0; i<n; i++) Set(i, S[P[i]]-'0');
	// debug(S)

	return ;
}
#include "Brunolib.h"
#include <bits/stdc++.h>
#pragma GCC optimize ("O2,unroll-loops")
//#pragma GCC optimize("no-stack-protector,fast-math")

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
typedef pair<ll, ll> pll;
#define debug(x) cerr<<#x<<'='<<(x)<<endl;
#define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl;
#define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl;
#define debugv(v) {cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;}
#define all(x) x.begin(), x.end()
#define pb push_back
#define kill(x) return cout<<x<<'\n', 0;

const int inf=1000000010;
const ll INF=1000000000000001000LL;
const int mod=1000000007;
const int MAXN=210, LOG=60;

int PP[MAXN], QQ[MAXN];
int A[MAXN];

ll Bruno(int n, int B[]){
	iota(PP, PP+n, 0);
	for (int i=1; i<n; i++) swap(PP[i], PP[(4*i)/5]);
	for (int i=0; i<n; i++) QQ[PP[i]]=i;
	string T="";
	for (int i=0; i<n; i++) A[i]=B[QQ[i]], T+=char('0'+A[i]);
	// debug(T)

	vector<int> vec;
	int pos=0;
	for (int i=0; i<n; i+=2){
		string S="";
		S+=char('0'+A[i]);
		S+=char('0'+A[i+1]);
		if (S=="00") continue ;
		if (S=="01") vec.pb(0);
		if (S=="10") vec.pb(1);
		if (S=="11") vec.pb(2);
	}
	reverse(all(vec));
	ll res=0;
	for (int x:vec) res=res*3ll+x;
	
	return res;
}

Compilation message (stderr)

Bruno.cpp: In function 'll Bruno(int, int*)':
Bruno.cpp:37:6: warning: unused variable 'pos' [-Wunused-variable]
   37 |  int pos=0;
      |      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...