이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void _p7(int h, int w) {
for (int i=0; i<h; ++i) {
for (int j=0; j<w; ++j) {
}
}
}
void _p3(int h, int w, int k) {
vector<int> use;
for (int i=0; i<h; ++i) {
for (int j=0; j<w; ++j) {
//if (i+k>=h && j+k>=w) continue;
vector<int> xored;
for (int x=0; x<=k; ++x) {
int y=k-x;
//cout<<i<<' '<<j<<' '<<x<<' '<<y<<'\n';
if (j+y<w && i+x<h) xored.push_back((i+x)*w+j+y);
if (x && y && j-y>=0 && i+x<h) xored.push_back((i+x)*w+j-y);
}
//for (auto x:xored) cout<<x<<' '; cout<<'\n';
if (!xored.size()) continue;
int xorpos=add_xor(xored);
int andpos=add_and({i*w+j,xorpos});
use.push_back(andpos);
}
}
add_or(use);
}
void construct_network(int h, int w, int k) {
if (max(h,w)<=30) {
_p3(h,w,k);
return;
}
if (min(h,w)==1) {
vector<int> use;
for (int i=0; i+k<h*w; ++i) {
int pos=add_and({i,i+k});
use.push_back(pos);
}
add_or(use);
return;
}
vector<int> use;
for (int x=0; x<=k; ++x) use.push_back(x*w+k-x);
add_xor(use);
}
# | 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... |