Submission #442938

#TimeUsernameProblemLanguageResultExecution timeMemory
442938alan8585Bit Shift Registers (IOI21_registers)C++17
22 / 100
2 ms532 KiB
#include "registers.h" #include <vector> using namespace std; vector<bool> emp(2000), set(2000, 1); void construct_instructions(int s, int n, int k, int q) { vector<bool> v(2000); v[0] = 1, append_store(51, v); append_store(61, set); append_move(1, 0); for(int i = k - 1; i >= 0; i--) { // 99 high bit mask vector<bool> v(2000); for(int j = 0; j < n; j++) { v[j * k + i] = 1; } append_store(99, v); append_and(87, 1, 99); append_xor(98, 87, 99); append_move(2, 98); for(int j = 1; j < 2000; j <<= 1) { append_right(3, 2, j); append_or(2, 2, 3); } append_and(2, 2, 51); append_move(4, 2); for(int j = 1; j < 2000; j <<= 1) { append_left(3, 4, j); append_or(4, 4, 3); } append_right(88, 87, i); append_store(87, emp); for(int j = 0; j < i; j++) { append_left(89, 88, j); append_or(87, 87, 89); } append_and(87, 4, 87); append_or(1, 1, 87); append_move(5, 1); append_not(97, 99); append_and(5, 5, 97); // left mask 95 vector<bool> v2(2000); for(int l = 0; l < i; l++) for(int j = 0; j < n; j++) v2[j * k + l] = 1; append_store(95, v2); append_xor(2, 2, 51); // 1 if min need this bit append_left(41, 2, i); append_or(42, 41, 42); // erase 5 append_xor(67, 2, 51); for(int j = 1; j < 2000; j <<= 1) { append_left(3, 67, j); append_or(67, 67, 3); } append_and(1, 1, 67); append_xor(1, 1, 99); for(int j = 1; j < 2000; j <<= 1) { append_left(3, 2, j); append_or(2, 2, 3); } append_and(1, 1, 2); append_add(1, 1, 5); } append_move(0, 42); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...