Submission #993501

#TimeUsernameProblemLanguageResultExecution timeMemory
993501mariaclaraVision Program (IOI19_vision)C++17
12 / 100
2 ms984 KiB
#include "vision.h"
#include<bits/stdc++.h>

using namespace std;

#define pb push_back

int n, m;
void construct_network(int H, int W, int K) {
	n = H;
	m = W;

	int qtd_space = n*m-1;
	vector<int> QQ;
	for(int i = 0; i < n; i++) { 
		for(int j = 0; j < m; j++) {
			// escolhe uma celula

			vector<int> q;

			//cout << "caras com distancia k para " << i << " " << j << ":\n";
			for(int x = i; x < n and x <= i+K; x++) {
				// escolhe outra celula em uma linha maior ou igual a i
				int y1 = j + i + K - x, y2 = j - i - K + x;
				//cout << x << " " << y1 << "\n" << x << " " << y2 << "\n";
				if(0 <= y1 and y1 < m and (x > i or y1 > j)) q.pb(m*x + y1);
				if(0 <= y2 and y2 < m and (x > i or y2 > j)) q.pb(m*x + y2);
			} 
			// y = k + i + j - x

			// for(int it : q) cout << it << " ";
			// cout << "\n";

			if(!q.empty()) {
				add_and(q);
				qtd_space++;
				add_and({m*i + j, qtd_space});
				qtd_space++;
				QQ.pb(qtd_space);
			}
		}
	}

	add_or(QQ);
}
#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...