# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
444826 | Xellos | Bit Shift Registers (IOI21_registers) | C++17 | 1 ms | 332 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "registers.h"
#include <vector>
using namespace std;
constexpr static int B = 2000;
void construct_instructions(int s, int n, int k, int q) {
// pad with 1
vector<bool> ones_pad(B, false);
for(int i = n*k; i < 128*k; i++) ones_pad[i] = true;
append_store(1, ones_pad);
append_or(2, 0, 1);
int offset = 2;
vector<bool> first_bits_0[11];
for(int i = 1; i <= k; i++) {
first_bits_0[i].resize(B, false);
for(int j = 0; j < 128*k; j++) first_bits_0[i][j] = (j%k >= i);
}
vector<bool> last_bits_0[11];
for(int i = 1; i <= k; i++) {
last_bits_0[i].resize(B, false);
for(int j = 0; j < 128*k; j++) last_bits_0[i][j] = (j%k < k-i);
}
append_store(0, last_bits_0[1]);
append_store(1, first_bits_0[1]);
for(int j = 0; j < 7; j++) {
// offset holds "input"
// split to 2 parts
append_right(offset+1, offset, k<<(6-j));
append_xor(offset+2, offset, offset+1); // X
# | 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... |