Submission #1230822

#TimeUsernameProblemLanguageResultExecution timeMemory
1230822rxlfd314Bit Shift Registers (IOI21_registers)C++20
21 / 100
0 ms328 KiB
#include "registers.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ari2 = array<int, 2>;
using ari3 = array<int, 3>;
using arl2 = array<ll, 2>;
using arl3 = array<ll, 3>;
template <class T> using vt = vector<T>;
#define all(x) begin(x), end(x)
#define size(x) (int((x).size()))
#define REP(a,b,c,d) for(int a=(b);(d)>0?a<=(c):a>=(c);a+=(d))
#define FOR(a,b,c) REP(a,b,c,1)
#define ROF(a,b,c) REP(a,b,c,-1)

constexpr int M = 100, B = 2000;

void construct_instructions(int s, int n, int k, int q) {
  if (s || n != 2 || k > 2)
    return;
  if (k == 1) {
    append_move(1, 0);
    append_right(0, 0, 1);
    append_left(1, 1, B-1);
    append_right(1, 1, B-1);
    append_and(0, 0, 1);
    return;
  }
  append_move(1, 0);
  append_move(2, 0);
  append_move(3, 0);
  append_right(0, 0, 3);
  append_left(1, 1, B-3);
  append_right(1, 1, B-1);
  append_left(2, 2, B-2);
  append_right(2, 2, B-1);
  append_left(3, 3, B-1);
  append_right(3, 3, B-1);
  #ifdef DEBUG
  append_print(0);
  append_print(1);
  append_print(2);
  append_print(3);
  #endif
  append_or(4, 0, 1);
  append_or(5, 2, 3);
  append_xor(6, 0, 2);
  append_and(7, 1, 3);
  append_and(8, 0, 2);
  append_left(8, 8, 1);
  append_or(0, 6, 7);
  append_and(0, 0, 4);
  append_and(0, 0, 5);
  append_or(0, 0, 8);
}
#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...