Submission #144866

# Submission time Handle Problem Language Result Execution time Memory
144866 2019-08-17T23:26:44 Z eriksuenderhauf Vision Program (IOI19_vision) C++14
0 / 100
4 ms 1016 KB
//#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "vision.h"
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
#define mem(a,v) memset((a), (v), sizeof (a))
#define enl printf("\n")
#define case(t) printf("Case #%d: ", (t))
#define ni(n) scanf("%d", &(n))
#define nl(n) scanf("%I64d", &(n))
#define nai(a, n) for (int i = 0; i < (n); i++) ni(a[i])
#define nal(a, n) for (int i = 0; i < (n); i++) nl(a[i])
#define pri(n) printf("%d\n", (n))
#define prl(n) printf("%I64d\n", (n))
#define pii pair<int, int>
#define pil pair<int, long long>
#define pll pair<long long, long long>
#define vii vector<pii>
#define vil vector<pil>
#define vll vector<pll>
#define vi vector<int>
#define vl vector<long long>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef cc_hash_table<int,int,hash<int>> ht;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> oset;
const double pi = acos(-1);
const int MOD = 1e9 + 7;
const int INF = 1e9 + 7;
const int MAXN = 4e3 + 5;
const double eps = 1e-9;
vi diag1[MAXN], diag2[MAXN];
int H, W, arr1[MAXN], arr2[MAXN];

int get(int i, int j) {
	if (i < 0 || j < 0 || H <= i || W <= j) return -1;
	return i*W + j;
}

void construct_network(int H, int W, int K) {
	vi Ns;
	int cnt = H*W;
	for (int i = 0; i < H; i++) {
		for (int j = 0; j < W; j++) {
			diag1[i+j].pb(get(i,j));
			diag2[i-j+W-1].pb(get(i,j));
		}
	}
	for (int i = 0; i <= (H-1) + (W-1); i++) {
		if (diag1[i].empty()) continue;
		arr1[i] = cnt;
		Ns.clear();
		for (int j: diag1[i])
			Ns.pb(j);
		if (i) Ns.pb(cnt-1);
		add_xor(Ns);
		cnt++;
	}
	for (int i = 0; i <= (H-1) + (W-1); i++) {
		if (diag2[i].empty()) continue;
		arr2[i] = cnt;
		Ns.clear();
		for (int j: diag2[i])
			Ns.pb(j);
		if (i) Ns.pb(cnt-1);
		add_xor(Ns);
		cnt++;
	}
	vi tmp[2];
	for (int k = K; k <= K+1; k++) {
		tmp[k-K].clear();
		for (int i = 0; i + k-1 <= (H-1) + (W-1); i++) {
			Ns.clear();
			for (int j = 0; j < k; j++)
				Ns.pb(arr1[i+j]);
			add_and(Ns);
			tmp[k-K].pb(cnt++);
			Ns.clear();
			for (int j = 0; j < k; j++)
				Ns.pb(arr2[i+j]);
			add_and(Ns);
			tmp[k-K].pb(cnt++);
		}
	}
	add_or(tmp[0]);
	add_or(tmp[1]);
	add_xor({cnt,cnt+1});
}

/*int main() {

	return 0;
}
*/
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 1016 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 504 KB WA in grader: Invalid index
2 Halted 0 ms 0 KB -