제출 #1237872

#제출 시각아이디문제언어결과실행 시간메모리
1237872MuhammadSaramVision Program (IOI19_vision)C++20
100 / 100
20 ms3400 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int h, int w, int k) { map<int,vector<int>> mp, mp1; for (int i=0;i<h;i++) for (int j=0;j<w;j++) mp[i+j].push_back(i*w+j), mp1[i-j].push_back(i*w+j); vector<int> v, v1; for (auto [i,x]:mp) v.push_back(add_or(x)); for (auto [i,x]:mp1) v1.push_back(add_or(x)); vector<int> p,p1; for (int i=0;i+k<v.size();i++) p.push_back(add_and({v[i],v[i+k]})); for (int i=0;i+k<v1.size();i++) p1.push_back(add_and({v1[i],v1[i+k]})); vector<int> q,q1; for (int i=0;i+k+1<v.size();i++) { vector<int> t; for (int j=i+k+1;j<v.size();j++) t.push_back(v[j]); q.push_back(add_and({v[i],add_or(t)})); } for (int i=0;i+k+1<v1.size();i++) { vector<int> t; for (int j=i+k+1;j<v1.size();j++) t.push_back(v1[j]); q1.push_back(add_and({v1[i],add_or(t)})); } int f,s; if (q1.size()) f=add_and({add_or(p),add_not(add_or(q1))}); else f=add_or(p); if (q.size()) s=add_and({add_or(p1),add_not(add_or(q))}); else s=add_or(p1); add_or({f,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...