#include <bits/stdc++.h>
using namespace std;
#define forn(i, n) for (int i = 0; i < int(n); i++)
#define pb push_back
#define mp make_pair
#define fst first
#define snd second
#define all(x) (x).begin(), (x).end()
#define sz(x) int((x).size())
#define ll long long
void append_move(int t, int x);
void append_store(int t, std::vector<bool> v);
void append_and(int t, int x, int y);
void append_or(int t, int x, int y);
void append_xor(int t, int x, int y);
void append_not(int t, int x);
void append_left(int t, int x, int s);
void append_right(int t, int x, int s);
void append_add(int t, int x, int y);
void append_print(int t);
int B=2000;
int open(int &sig, int k, int op, int act)
{
int i, tam=1, ant;
k=k-act;
ant=op;
if(k==1)
{
return op;
}
while(tam*2<=k)
{
sig++;
append_right(sig,ant,tam);
append_or(sig,ant,sig);
ant=sig;
tam=tam*2;
}
if(tam<k)
{
sig++;
append_right(sig,ant,abs(tam-k));
append_or(sig,sig,ant);
}
return sig;
}
void construct_instructions(int s, int n, int k, int q)
{
int i, j, act=0, sig, uno, allUno, op, a, in;
sig=1;
vector<int>pert(k,0), pref(k,0);
vector<bool> v2(B,1);
for(i=0; i<k; i++)
{
act=k-(i+1);
vector<bool>v(B,0);
for(j=0; j<n; j++)
{
v[act]=1;
act+=k;
}
sig++;
pert[i]=sig;
append_store(sig,v);
sig++;
pref[i]=sig;
append_store(sig,v2);
act=k-(i+1);
for(j=0; j<n; j++)
{
v2[act]=0;
act+=k;
}
}
vector<bool>v(B,0);
v[0]=1;
sig++;
uno=sig;
append_store(sig,v);
for(i=0; i<B; i++)
v[i]=1;
sig++;
allUno=pref[0];
in=sig;
for(i=0; i<k; i++)
{
append_not(1,0);
sig=in;
sig++;
op=sig;
append_and(sig,1,pert[i]);
sig++;
append_not(sig,sig-1);
sig++;
append_add(sig,sig-1,uno);
sig++;
append_right(sig,sig-1,B-1);
sig++;
a=sig;
append_add(sig,allUno,sig-1);
sig++;
append_or(sig,open(sig, k, op, i),a);
sig++;
append_not(sig,sig-1);
append_and(sig,sig,pref[i]);
append_or(0,0,sig);
}
sig++;
append_not(sig,0);
int ant, tam=n;
while(tam>1)
{
ant=tam;
tam=(tam+1)/2;
sig++;
append_right(sig,sig-1,tam*k);
sig++;
append_or(sig,sig-1,sig-2);
}
append_not(0,sig);
/*forn(i, sig+1)
append_print(i);*/
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |