이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#include "vision.h"
#define SZ(x) x.size()
void construct_network(int n, int m, int k) {
vector<int> sumgates(n + m - 1, -1), sumgates2(n + m - 1, -1); // [0; (n-1)+(m-1)].
vector<vector<int>> lst(n + m - 1), lst2(n + m -1);
for (int i = 0; i != n; ++i)
for (int j = 0; j != m; ++j) {
lst[i + j].push_back(i * m + j);
lst2[i + j].push_back(i * m + (m - 1 - j));
}
for (int sm = 0; sm < n + m - 1; ++sm) {
sumgates[sm] = add_or(lst[sm]);
sumgates2[sm] = add_or(lst2[sm]);
}
vector<int> pref(n + m - 1, -1), pref2(n + m - 1, -1);
pref[0] = sumgates[0];
pref2[0] = sumgates2[0];
for (int sm = 1; sm < SZ(pref); ++sm) {
pref[sm] = add_or({sumgates[sm], pref[sm - 1]});
pref2[sm] = add_or({sumgates2[sm], pref2[sm - 1]});
}
int node_k = -1, node_kplus1 = -1;
for (int iter = 0; iter != 2; ++iter) {
int the_k = (iter == 0 ? k : k + 1);
int& res_node = (iter == 0 ? node_k : node_kplus1);
vector<int> or_lst;
for (int s = 0; s + the_k < SZ(sumgates); ++s)
or_lst.push_back(add_and({pref[s], sumgates[s + the_k]}));
for (int s = 0; s + the_k < SZ(sumgates2); ++s)
or_lst.push_back(add_and({pref2[s], sumgates2[s + the_k]}));
if (not or_lst.empty())
res_node = add_or(or_lst);
}
if (node_kplus1 == -1)
add_or({node_k, node_k});
else
add_xor({node_k, node_kplus1});
}
컴파일 시 표준 에러 (stderr) 메시지
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:27:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
27 | for (int sm = 1; sm < SZ(pref); ++sm) {
| ^
vision.cpp:39:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
39 | for (int s = 0; s + the_k < SZ(sumgates); ++s)
| ^
vision.cpp:42:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
42 | for (int s = 0; s + the_k < SZ(sumgates2); ++s)
| ^
# | 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... |