Submission #166086

#TimeUsernameProblemLanguageResultExecution timeMemory
166086nickmet2004Vision Program (IOI19_vision)C++14
0 / 100
21 ms19576 KiB
#include<bits/stdc++.h> #include"vision.h" using namespace std; int h , w , k; vector<int> Dl[400500] , Dr[400500]; int solve(int h , int w , int K){ for(int i = 0; i < h; ++i){ for(int j = 0; j < w; ++j){ // emplace back the elements on diagonals , position off memory array Dl[i - j].push_back(i * w + j); Dr[i + j + w - 1].push_back(i * w + j); } } vector<int> DiagLor , DiagRor , prefLor , prefRor , ans; for(int i = 0; i <= h + w - 2; ++i){ DiagLor.push_back(add_or(Dl[i])); DiagRor.emplace_back(add_or(Dr[i])); prefLor.push_back(add_or(DiagLor)); prefRor.push_back(add_or(DiagRor)); if(i >= K){ ans.push_back( add_and ( { DiagLor[i] , prefLor[i - K] } ) ); ans.push_back( add_and ( { DiagRor[i] , prefRor[i - K] } ) ); } } return add_or(ans); } void construct_network(int H , int W , int K){ if(H + W - 2 == K){ solve(H , W , K); } else { add_xor( { solve(H , W , K) , solve(H , W , K + 1) } ); } } //int main(){}
#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...