#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
Bruno.cpp: In function 'll Bruno(int, int*)':
Bruno.cpp:37:6: warning: unused variable 'pos' [-Wunused-variable]
37 | int pos=0;
| ^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
54 ms |
2196 KB |
Output is correct - L* = 40 |
2 |
Correct |
62 ms |
2292 KB |
Output is correct - L* = 40 |
3 |
Correct |
53 ms |
2252 KB |
Output is correct - L* = 40 |
4 |
Correct |
48 ms |
2316 KB |
Output is correct - L* = 40 |
5 |
Correct |
58 ms |
2312 KB |
Output is correct - L* = 40 |
6 |
Correct |
49 ms |
2356 KB |
Output is correct - L* = 40 |
7 |
Correct |
50 ms |
2340 KB |
Output is correct - L* = 40 |
8 |
Correct |
71 ms |
2152 KB |
Output is correct - L* = 40 |
9 |
Correct |
50 ms |
2264 KB |
Output is correct - L* = 40 |
10 |
Correct |
48 ms |
2204 KB |
Output is correct - L* = 40 |
11 |
Correct |
60 ms |
2296 KB |
Output is correct - L* = 40 |
12 |
Correct |
49 ms |
2228 KB |
Output is correct - L* = 40 |
13 |
Correct |
49 ms |
2228 KB |
Output is correct - L* = 40 |
14 |
Correct |
61 ms |
2196 KB |
Output is correct - L* = 40 |
15 |
Correct |
53 ms |
2288 KB |
Output is correct - L* = 40 |
16 |
Correct |
65 ms |
2248 KB |
Output is correct - L* = 40 |
17 |
Correct |
49 ms |
2168 KB |
Output is correct - L* = 40 |
18 |
Correct |
49 ms |
2328 KB |
Output is correct - L* = 40 |
19 |
Correct |
55 ms |
2320 KB |
Output is correct - L* = 40 |
20 |
Correct |
50 ms |
2256 KB |
Output is correct - L* = 40 |
21 |
Correct |
48 ms |
2272 KB |
Output is correct - L* = 40 |
22 |
Correct |
48 ms |
2312 KB |
Output is correct - L* = 40 |
23 |
Correct |
50 ms |
2308 KB |
Output is correct - L* = 40 |
24 |
Correct |
48 ms |
2304 KB |
Output is correct - L* = 40 |
25 |
Correct |
48 ms |
2236 KB |
Output is correct - L* = 40 |
26 |
Correct |
61 ms |
2248 KB |
Output is correct - L* = 40 |
27 |
Correct |
54 ms |
2332 KB |
Output is correct - L* = 40 |
28 |
Correct |
51 ms |
2260 KB |
Output is correct - L* = 40 |
29 |
Correct |
66 ms |
2224 KB |
Output is correct - L* = 40 |
30 |
Correct |
49 ms |
2260 KB |
Output is correct - L* = 40 |
31 |
Correct |
49 ms |
2408 KB |
Output is correct - L* = 40 |
32 |
Correct |
60 ms |
2328 KB |
Output is correct - L* = 40 |
33 |
Correct |
51 ms |
2128 KB |
Output is correct - L* = 40 |
34 |
Correct |
57 ms |
2348 KB |
Output is correct - L* = 40 |
35 |
Correct |
51 ms |
2196 KB |
Output is correct - L* = 40 |
36 |
Correct |
47 ms |
2404 KB |
Output is correct - L* = 40 |
37 |
Correct |
54 ms |
2284 KB |
Output is correct - L* = 40 |
38 |
Correct |
48 ms |
2256 KB |
Output is correct - L* = 40 |
39 |
Correct |
49 ms |
2260 KB |
Output is correct - L* = 40 |
40 |
Correct |
49 ms |
2248 KB |
Output is correct - L* = 40 |