제출 #316668

#제출 시각아이디문제언어결과실행 시간메모리
316668jainbot27Vision Program (IOI19_vision)C++17
100 / 100
14 ms1920 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...