#include <bits/stdc++.h>
using namespace std;
void append_move(int t, int x);
void append_store(int t, vector<bool> v);
void append_and(int t, int x, int y);
void append_or(int t, int x, int y);
void append_xor(int t, int x, int y);
void append_not(int t, int x);
void append_left(int t, int x, int s);
void append_right(int t, int x, int s);
void append_add(int t, int x, int y);
void append_print(int t);
void construct_instructions(int s, int n, int k, int q);
void fill (vector<bool>& v, bool b = 0) {
while ((int) v.size() < 2000) v.push_back(b);
}
vector<bool> v1 {1}, inv1;
const int c1 = 99, invc1 = 98;
void cmp (int t, int a, int b) { // all 1s iff a < b
append_not(t, b);
append_add(t, t, c1);
append_add(t, a, t);
append_right(t, t, 1999);
append_not(t, t);
append_add(t, t, c1);
}
void min (int t, int a, int b, int tmp) {
cmp(t, a, b);
append_not(tmp, t);
append_and(t, t, a);
append_and(tmp, tmp, b);
append_add(t, t, tmp);
}
void construct_instructions (int s, int n, int k, int q) {
fill(v1);
fill(inv1, 1);
append_store(c1, v1);
if (s == 0) {
vector<bool> AND;
if (n == 2) {
for (int i = 0; i < k; i++) AND.push_back(1);
fill(AND);
append_store(98, AND);
append_and(1, 0, 98);
append_right(2, 0, k);
min(0, 1, 2, 98);
} else {
vector<bool> NEG;
for (int i = 0; i < n*k; i++) AND.push_back(i % k == 0);
fill(AND);
for (int i = 0; i < n*k; i++) NEG.push_back(i % k != 0);
NEG[0] = 1;
fill(NEG, 1);
append_store(96, AND);
append_store(97, NEG);
append_store(invc1, inv1);
for (int i = 0; i < k; i++) {
append_and(10+k-i, 0, 96);
append_right(0, 0, 1);
}
append_left(0, 0, 2000);
for (int i = 0; i < k; i++) {
append_or(2, 11+i, 1);
append_add(3, 97, 2);
append_right(3, 3, 1999);
append_not(3, 3);
append_and(3, 3, c1);
append_left(0, 0, 1);
append_add(0, 0, 3);
append_add(3, 3, invc1);
append_and(2, 2, 3);
append_or(1, 1, 2);
}
}
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
304 KB |
Output is correct |
2 |
Correct |
1 ms |
304 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
300 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
304 KB |
Output is correct |
5 |
Correct |
1 ms |
300 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Incorrect sorting |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Incorrect sorting |
2 |
Halted |
0 ms |
0 KB |
- |