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 "vision.h"
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define rr first
#define cc second
using namespace std;
typedef pair<int, int> pii;
int hh, ww, kk;
pii to_pair(int x){
return mp(x / ww, x % ww);
}
int to_linear(pii x){
return x.rr * ww + x.cc;
}
void construct_network(int H, int W, int K) {
// proj y
hh = H, ww = W, kk = K;
int one = add_or( {0, 1} ), zero = add_not(one);
vector<int> proj_y;
for (int i = 0; i < ww; i++){
vector<int> send;
for (int j = 0; j < hh; j++){
send.pb(to_linear(mp(i, j)));
}
proj_y.pb(add_xor(send));
}
vector<int> proj_x;
for (int i = 0; i < hh; i++){
vector<int> send;
for (int j = 0; j < ww; j++){
send.pb(to_linear(mp(j, i)));
}
proj_x.pb(add_xor(send));
}
// // max val = h + w
// // log_2 (400) + 1 = 9
vector<int> counter;
for (int i = 0; i < 10; i++){
counter.pb(add_and({zero, 0}));
}
for (int j = 0; j < ww; j++){
int adder = proj_y[j];
for (int i = 0; i < 10; i++){
int tmp = counter[i];
counter[i] = add_xor({counter[i], adder});
adder = add_and({tmp, adder});
}
}
for (int j = 0; j < hh; j++){
int adder = proj_x[j];
for (int i = 0; i < 10; i++){
int tmp = counter[i];
counter[i] = add_xor({counter[i], adder});
adder = add_and({tmp, adder});
}
}
kk = kk + 2;
int last = one;
for (int i = 9; i >= 0; i--){
int kkbit = (kk % 2) ? (one) : (zero);
int cmp = add_xor({counter[i], kkbit});
kk >>= 1;
cmp = add_not(cmp); //this is saved by switching the k % 2 outcome
last = add_and({last, cmp});
}
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |