# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1232763 | Timosh | 던전 (IOI21_dungeons) | C++20 | 0 ms | 0 KiB |
#include "bits/stdc++.h"
#include "registers.h"
using namespace std;
void construct_instructions(int s, int n, int k, int q)
{
for (int i = k - 1; i >= 0; i--)
{
vector<bool> v(2000), s(2000);
for (int j = 0; j < n; j++)
v[j * k + i] = 1;
s[i] = 1;
append_store(1, v);
append_and(1, 0, 1);
append_move(2, 1);
int cur = n;
while (cur > 1)
{
append_right(2, 2, cur / 2 * k);
append_and(2, 1, 2);
cur = (cur + 1) / 2;
}
append_xor(99, 99, 2);
if (i == 0)
break;
append_move(3, 2);
for (int j = 1; j < n; j++)
{
append_left(2, 2, k);
append_or(2, 3, 2);
}
append_not(2, 2);
append_and(1, 2, 1);
for (int j = 0; j < i; j++)
{
append_right(1, 1, 1);
append_or(0, 0, 1);
}
}
append_move(0, 99);
}