제출 #1050525

#제출 시각아이디문제언어결과실행 시간메모리
1050525Kel_MahmutVision Program (IOI19_vision)C++14
8 / 100
46 ms9044 KiB
#include "vision.h"
#include <bits/stdc++.h>
#define pb push_back
#define endl ("\n")
#define all(aa) aa.begin(), aa.end()
typedef long long ll;
using namespace std;


void construct_network(int h, int w, int k) {
	function<int(int, int)> f = [&](int a, int b){
		return a * w + b;
	};
	int maxdigit = 10;
	vector<int> xdigit(maxdigit);

	for(int dig = 1; dig <= maxdigit; dig++){
		int num = 1 << dig;
		int lst = num / 2;
		vector<vector<int>> query(num);
		for(int i = 0; i < h; i++){
			for(int j = 0; j < w; j++){
				query[(j % num)/lst].pb(f(i, j));
			}
		}

		vector<int> res;
		for(int i = 0; i < num; i++){
			if(query[i].size()){
				res.pb(add_xor(query[i]));
			}
		}
		xdigit[dig - 1] = add_or(res);
	}

	vector<int> ydigit(maxdigit);
	for(int dig = 1; dig <= maxdigit; dig++){
		int num = 1 << dig;
		int lst = num / 2;
		vector<vector<int>> query(num);
		for(int i = 0; i < h; i++){
			for(int j = 0; j < w; j++){
				query[(i % num) / lst].pb(f(i, j));
			}
		}

		vector<int> res;
		for(int i = 0; i < num; i++){
			if(query[i].size())
				res.pb(add_xor(query[i]));
		}
		ydigit[dig - 1] = add_or(res);
	}

	vector<int> notxdigit(maxdigit);
	vector<int> notydigit(maxdigit);
	for(int i = 0; i < maxdigit; i++){
		notxdigit[i] = add_not(xdigit[i]);
	}

	for(int i = 0; i < maxdigit; i++){
		notydigit[i] = add_not(ydigit[i]);
	}

	function<int(int)> xask = [&](int a){
		vector<int> query(maxdigit);
		for(int dig = 0; dig < maxdigit; dig++){
			if((a >> dig) & 1){
				query[dig] = xdigit[dig];
			}
			else
				query[dig] = notxdigit[dig];
		}
		int ret = add_and(query);
		return ret;
	};

	function<int(int)> yask = [&](int a){
		vector<int> query(maxdigit);
		for(int dig = 0; dig < maxdigit; dig++){
			if((a >> dig) & 1){
				query[dig] = ydigit[dig];
			}
			else
				query[dig] = notydigit[dig];
		}
		int ret = add_and(query);
		return ret;
	};


	vector<int> ans;
	for(int x = 0; x <= k; x++){
		int y = k - x;
		vector<int> cur;
		cur.pb(xask(x));
		cur.pb(yask(y));
		ans.pb(add_and(cur));
	}
	int lesgoo = add_or(ans);
}

컴파일 시 표준 에러 (stderr) 메시지

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:100:6: warning: unused variable 'lesgoo' [-Wunused-variable]
  100 |  int lesgoo = add_or(ans);
      |      ^~~~~~
#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...