이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K) {
map<int, vector<int>> mpx, mpy;
for(int r = 0; r < H; r++){
for(int c = 0; c < W; c++){
mpx[r + c].push_back(r * W + c);
mpy[c - r].push_back(r * W + c);
}
}
vector<int> vx, vy, any1, any2, any1smaller, any2smaller;
for(auto [k, v] : mpx){
vx.push_back(add_or(v));
}
for(auto [k, v] : mpy){
vy.push_back(add_or(v));
}
// determin if we have dist K in one of both
// (any(dist1 == K) or any(dist2 == K) and dist1 <= K and dist2 <= K)
// case where two fall on the same diagonal !!!!!!!!!!
for(int i = 0; i < vx.size(); i++){
if(i < vx.size() - K)
any1.push_back(add_and({vx[i], vx[i + K]}));
//any1smaller.push_back(add_and({vx[i], add_not(add_xor(vector<int>(vx.begin() + i, vx.begin() + min(vx.size(), (size_t) i + K + 1))))}));
if(i + 1< vx.size())
any1smaller.push_back(add_and({vx[i], add_or(vector<int>(vx.begin() + i + 1, vx.begin() + min(vx.size(), (size_t) i + K + 1)))}));
}
any1smaller.push_back(add_xor(vx));
for(int i = 0; i < vy.size(); i++){
if(i < vy.size() - K)
any2.push_back(add_and({vy[i], vy[i + K]}));
//any2smaller.push_back(add_and({vy[i], add_not(add_xor(vector<int>(vy.begin() + i, vy.begin() + min(vy.size(), (size_t) i + K + 1))))}));
if(i + 1 < vy.size())
any2smaller.push_back(add_and({vy[i], add_or(vector<int>(vy.begin() + i + 1, vy.begin() + min(vy.size(), (size_t) i + K + 1)))}));
}
any2smaller.push_back(add_xor(vy));
// and(x, y)
add_and({add_or({add_or(any1), add_or(any2)}), add_or(any1smaller), add_or(any2smaller)});
}
컴파일 시 표준 에러 (stderr) 메시지
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:24:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
24 | for(int i = 0; i < vx.size(); i++){
| ~~^~~~~~~~~~~
vision.cpp:25:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
25 | if(i < vx.size() - K)
| ~~^~~~~~~~~~~~~~~
vision.cpp:28:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
28 | if(i + 1< vx.size())
| ~~~~~^~~~~~~~~~~
vision.cpp:32:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
32 | for(int i = 0; i < vy.size(); i++){
| ~~^~~~~~~~~~~
vision.cpp:33:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
33 | if(i < vy.size() - K)
| ~~^~~~~~~~~~~~~~~
vision.cpp:36:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
36 | if(i + 1 < vy.size())
| ~~~~~~^~~~~~~~~~~
# | 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... |