Submission #1219557

#TimeUsernameProblemLanguageResultExecution timeMemory
1219557Theo830Vision Program (IOI19_vision)C++17
0 / 100
2 ms1472 KiB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define f(i,a,b) for(ll i = a;i < b;i++)
#define ii pair<ll,ll>
#define F first
#define S second
#define pb push_back
int n,m;
int box(int i,int j){
	return i * m + j;
}
void construct_network(int H, int W, int K) {
	n = H;
	m = W;
	vector<ll>ex;
	vector<int>a;
	f(i,0,n){
		a.clear();	
		f(j,0,m){
			a.pb(box(i,j));
		}
		if(i){
			ex.pb(ex.back());
		}
		ex.pb(add_xor(a));
	}
	f(j,0,m){	
		a.clear();
		f(i,0,n){
			a.pb(box(i,j));
		}
		if(j){
			ex.pb(ex.back());
		}
		ex.pb(add_xor(a));
	}
	vector<int>v;
	v.pb(ex.back());
	ll zero = add_or(v);
	vector<ll>num;
	f(k,0,10){
		v.clear();
		v.pb(zero);
		num.pb(add_or(v));
	}
	for(auto x:ex){
		num.back() = x;
		f(i,0,9){
			v.clear();
			v.pb(num[i]);
			v.pb(num.back());
			ll neo = add_xor(v);
			num.back() = add_and(v);
			num[i] = neo;
		}
	}
	ll ans = add_not(zero);
	f(i,0,9){
		if(K & (1<<i)){
			v.clear();
			v.pb(ans);
			v.pb(num[i]);
			ans = add_and(v);
		}
		else{
			ll res = add_not(num[i]);
			v.clear();
			v.pb(ans);
			v.pb(res);
			ans = add_and(v);
		}
	}
}

#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...