Submission #1051494

#TimeUsernameProblemLanguageResultExecution timeMemory
1051494mychecksedadVision Program (IOI19_vision)C++17
100 / 100
40 ms1464 KiB
#include "vision.h" #include<bits/stdc++.h> using namespace std; #define ll long long int #define pb push_back #define vi vector<int> int n, m; int last; vector<int> D; int c(int x, int y){ return x * m + y; } void construct_network(int H, int W, int K) { n = H, m = W; last = n*m; vector<int> diag, diag2; for(int sum = 0; sum < n + m - 1; ++sum){ vector<int> L; for(int i = 0; i < n; ++i){ for(int j = m - 1; j >= 0; --j){ if(j + i == sum){ L.pb(c(i, j)); // cout << i << ' ' << j << '\n'; } } } if(L.empty()) continue; // cout << '\n'; diag.pb(add_or(L)); } for(int sum = -n-m; sum < n + m; ++sum){ vector<int> L; for(int i = 0; i < n; ++i){ for(int j = 0; j < m; ++j){ if(i - j == sum){ L.pb(c(i, j)); // cout << i << ' ' << j << '\n'; } } } // cout << '\n'; if(L.empty()) continue; diag2.pb(add_or(L)); } vector<int> diag_pref(diag.size()); vector<int> diag_pref2(diag2.size()); diag_pref[0] = diag[0]; diag_pref2[0] = diag2[0]; for(int i = 1; i < diag.size(); ++i){ diag_pref[i] = add_or({diag_pref[i - 1], diag[i]}); } for(int i = 1; i < diag2.size(); ++i){ diag_pref2[i] = add_or({diag_pref2[i - 1], diag2[i]}); } vector<int> F, G; for(int i = 0; i < diag.size(); ++i){ // sum = i int j = i - K - 1; // cout << i << ' ' << j << '\n'; if(j >= 0){ F.pb(add_and({diag[i], diag_pref[j]})); } if(j >= 0){ F.pb(add_and({diag2[i], diag_pref2[j]})); } j = i - K; if(j >= 0){ G.pb(add_and({diag[i], diag_pref[j]})); } if(j >= 0){ G.pb(add_and({diag2[i], diag_pref2[j]})); } } // cout << diag.size() << '\n'; // cout << diag2.size() << '\n'; if(F.empty()){ add_or(G); }else{ int x = add_or(G); int y = add_or(F); add_xor({x, y}); } }

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:51:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |  for(int i = 1; i < diag.size(); ++i){
      |                 ~~^~~~~~~~~~~~~
vision.cpp:54:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |  for(int i = 1; i < diag2.size(); ++i){
      |                 ~~^~~~~~~~~~~~~~
vision.cpp:58:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |  for(int i = 0; i < diag.size(); ++i){
      |                 ~~^~~~~~~~~~~~~
#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...