Submission #819796

# Submission time Handle Problem Language Result Execution time Memory
819796 2023-08-10T13:40:50 Z Lobo Vision Program (IOI19_vision) C++17
0 / 100
79 ms 7784 KB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define fr first
#define sc second
#define mp make_pair
#define all(x) x.begin(),x.end()

void construct_network(int n, int m, int K) {
	map<int,int> diagdw,diagup;
	for(int it = 0; it <= n+m-2; it++) {
		int i,j;
		if(it <= n-1) {
			i = n-1-it;
			j = 0;
		}
		else {
			i = 0;
			j = it-n+1;
		}

		int i0,j0;
		vector<int> diag;

		i0 = i-i;
		j0 = j-i;

		while(i0 <= n-1) {
			if(i0 >= 0 && i0 <= n-1 && j0 >= 0 && j0 <= m-1) diag.pb(i0*m+j0);
			i0++;
			j0++;
		}

		diagdw[i-j] = add_or(diag);

		if(it <= n-1) {
			i = it;
			j = 0;
		}
		else {
			i = n-1;
			j = it-n+1;
		}

		diag.clear();

		i0 = i-i;
		j0 = j+i;

		while(i0 <= n-1) {
			if(i0 >= 0 && i0 <= n-1 && j0 >= 0 && j0 <= m-1) diag.pb(i0*m+j0);
			
			i0++;
			j0--;
		}

		diagup[i] = add_or(diag);
	}

	vector<int> checks0;
	for(int add = 0; K+add <= n+m-2 && add <= 1; add+= 1) {
		int k = K+add;
		vector<int> checks;
		for(int it = 0; it <= n+m-2; it++) {
			int i,j;
			if(it <= n-1) {
				i = n-1-it;
				j = 0;
			}
			else {
				i = 0;
				j = it-n+1;
			}

			vector<int> diag0,diag1;
			int i0,j0,i1,j1;

			i0 = i-i;
			j0 = j-i;
			i1 = i-i;
			j1 = j+k-i;

			for(int jj = -n-m; jj <= j0; jj++) {
				if(diagdw.count(i0-jj)) diag0.pb(diagdw[i0-jj]);
			}

			for(int jj = j1; jj <= n+m; jj++) {
				if(diagdw.count(i1-jj)) diag1.pb(diagdw[i1-jj]);
			}

			if(diag0.size() && diag1.size()) checks.pb(add_and(vector<int>{add_or(diag0),add_or(diag1)}));
			
			diag0.clear();
			diag1.clear();

			if(it <= n-1) {
				i = it;
				j = 0;
			}
			else {
				i = n-1;
				j = it-n+1;
			}

			i0 = i-i;
			j0 = j+i;
			i1 = i-i;
			j1 = j+k+i;

			for(int jj = -n-m; jj <= j0; jj++) {
				if(diagup.count(i0+jj)) diag0.pb(diagup[i0+jj]);
			}

			for(int jj = j1; jj <= n+m; jj++) {
				if(diagup.count(i1+jj)) diag1.pb(diagup[i1+jj]);
			}

			// cout << i << " " << j << endl;

			while(i0 <= n-1) {
				// if(i0 >= 0 && i0 <= n-1 && j0 >= 0 && j0 <= m-1) diag0.pb(i0*m+j0);
				for(int jj = 0; jj <= j0; jj++) {
					if(i0 >= 0 && i0 <= n-1 && jj >= 0 && jj <= m-1) diag0.pb(i0*m+jj);
				}
				i0++;
				j0--;
			}

			while(i1 <= n-1) {
				// if(i1 >= 0 && i1 <= n-1 && j1 >= 0 && j1 <= m-1) diag1.pb(i1*m+j1);
				for(int jj = j1; jj <= m-1; jj++) {
					if(i1 >= 0 && i1 <= n-1 && jj >= 0 && jj <= m-1) diag1.pb(i1*m+jj);
				}
				i1++;
				j1--;
			}

			if(diag0.size() && diag1.size()) checks.pb(add_and(vector<int>{add_or(diag0),add_or(diag1)}));
		}

		if(add == 0) checks0.pb(add_or(checks));
		else checks0.pb(add_not(add_or(checks)));
	}

	add_and(checks0);
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB on inputs (0, 1), (0, 2), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB on inputs (0, 1), (0, 2), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB on inputs (0, 1), (0, 2), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB on inputs (0, 1), (0, 2), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 15 ms 1720 KB on inputs (0, 197), (0, 198), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 79 ms 7784 KB Output is correct
4 Correct 37 ms 4556 KB Output is correct
5 Correct 16 ms 1928 KB Output is correct
6 Correct 5 ms 596 KB Output is correct
7 Correct 2 ms 340 KB Output is correct
8 Incorrect 7 ms 5152 KB WA in grader: Too many inputs
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 4660 KB WA in grader: Too many inputs
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB on inputs (0, 1), (0, 2), expected 1, but computed 0
2 Halted 0 ms 0 KB -