제출 #1287054

#제출 시각아이디문제언어결과실행 시간메모리
1287054Jawad_Akbar_JJVision Program (IOI19_vision)C++20
12 / 100
6 ms1340 KiB
#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 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...