Submission #333455

#TimeUsernameProblemLanguageResultExecution timeMemory
333455pichuliaVision Program (IOI19_vision)C++17
100 / 100
12 ms1900 KiB
#include "vision.h"
#include<vector>
using namespace std;
int a[409];
int b[409];
int c[409];
int d[409];
vector<int> v[409];
vector<int> w[409];
int n, m;
int process(int p, int last_op) {
	int i, j, k;
	vector<int> vv(2);
	vector<int> w;
	for (i = p; i < n + m - 1; i++) {
		vv[0] = a[i];
		vv[1] = c[i - p];
		k = add_and(vv);
		w.push_back(k);
		vv[0] = b[i];
		vv[1] = d[i - p];
		k = add_and(vv);
		w.push_back(k);
	}
	if (w.size() > 0) {
		last_op = add_or(w);
	}
	return last_op;
}
void construct_network(int _n, int _m, int p) {
	int i, j, k;
	n = _n;
	m = _m;
	for (i = 0; i < n; i++) {
		for (j = 0; j < m; j++) {
			v[i + j].push_back(i * m + j);
			w[i - j + m - 1].push_back(i * m + j);
		}
	}
	vector<int> vv(2);
	for (i = 0; i < n + m - 1; i++) {
		a[i] = add_or(v[i]);
		b[i] = add_or(w[i]);
	}
	c[0] = a[0];
	d[0] = b[0];
	for (i = 1; i < n + m - 1; i++) {
		vv[0] = c[i - 1];
		vv[1] = a[i];
		c[i] = add_or(vv);
		vv[0] = b[i];
		vv[1] = d[i - 1];
		d[i] = add_or(vv);
	}
	int zero = add_not(0);
	int last;
	{
		vv[0] = 0;
		vv[1] = zero;
		last = add_and(vv);
	}
	int resp = process(p, last);
	int resq = process(p+1, last);
	{
		vv[0] = resp;
		vv[1] = resq;
		add_xor(vv);
	}
}

Compilation message (stderr)

vision.cpp: In function 'int process(int, int)':
vision.cpp:12:9: warning: unused variable 'j' [-Wunused-variable]
   12 |  int i, j, k;
      |         ^
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:31:12: warning: unused variable 'k' [-Wunused-variable]
   31 |  int i, j, k;
      |            ^
#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...