#include "registers.h"
#include <bits/stdc++.h>
#define pb push_back
#define se second
#define fi first
using namespace std;
int c;
// 1 2 4 8
void mlog(){
++c; append_right(c,c-1,1);
append_or(c-1,c-1,c);
append_right(c,c-1,2);
append_or(c-1,c-1,c);
append_right(c,c-1,4);
append_or(c-1,c-1,c);
append_right(c,c-1,8);
append_or(c-1,c-1,c);
c--;
}
void mn(int x, int y){
++c; append_xor(c,c,c);
append_xor(c,x,y); // xor
mlog();
// append_print(c);
++c; append_xor(c,c,c);
append_right(c,c-1,1);
++c; append_xor(c,c,c);
append_xor(c,c-2,c-1); // cmn isolate 1 bit
// append_print(c);
++c; append_xor(c,c,c);
append_and(c,x,c-1); // 000 ato 0100, ngikutin x
mlog(); // 0111
// append_print(c);
++c; append_not(c,c-1); // inversenya
++c; append_and(c,x,c-1);
++c; append_and(c,y,c-3);
append_add(1,c,c-1);
// append_print(1);
}
void construct_instructions(int s, int n, int k, int q) {
append_move(1, 0);
append_left(1,1,2000-k);
append_right(1,1,2000-k);
for(int i=2; i<=n; i++){
c = 2;
append_move(2, 0);
append_left(2,2,2000-i*k);
append_right(2,2,2000-k);
// append_print(2);
mn(1,2);
// append_print(1);
}
append_move(0,1);
}
# | 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... |