#include <iostream>
#include <vector>
#include "vision.h"
using namespace std;
vector<int> get1(int n, int m, int i, int j){
vector<int> ans;
while (i < n and j >= 0){
ans.push_back(i * m + j);
i++, j--;
}
return ans;
}
vector<int> get2(int n, int m, int i, int j){
vector<int> ans;
while (i < n and j < m){
ans.push_back(i * m + j);
i++, j++;
}
return ans;
}
int solve1(int n, int m, int k){
vector<int> vc, vc2;
for (int j=0;j<m;j++)
vc.push_back(add_or(get1(n, m, 0, j)));
for (int i=1;i<n;i++)
vc.push_back(add_or(get1(n, m, i, m-1)));
for (int i=k;i<vc.size();i++)
vc2.push_back(add_and({vc[i], vc[i - k]}));
return add_or(vc2);
}
int solve2(int n, int m, int k){
vector<int> vc, vc2;
for (int i=n-1;i>0;i--)
vc.push_back(add_or(get2(n, m, i, 0)));
for (int j=0;j<m;j++)
vc.push_back(add_or(get2(n, m, 0, j)));
for (int i=k;i<vc.size();i++)
vc2.push_back(add_and({vc[i], vc[i - k]}));
return add_or(vc2);
}
void construct_network(int n, int m, int k){
int frst = solve1(n, m, k);
int scnd = solve2(n, m, k);
add_or({frst, scnd});
}
| # | 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... |