Submission #1327099

#TimeUsernameProblemLanguageResultExecution timeMemory
1327099nikaa123Vision Program (IOI19_vision)C++20
0 / 100
1 ms568 KiB
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;

void construct_network(int H, int W, int K) {
	int l = 0; int r = H*W-1;
	int id1 = -1;
	while (l <= r) {
		int mid = (l+r)/2;
		vector <int> res(mid);
		iota(res.begin(),res.end(),0);
		if (!add_or(res)) {
			id1 = mid;
			l = mid + 1;
		} else {
			r = mid -1;
		}
	}
	l = id1+1; r = H*W-1;
	int id2 = -1;
	while (l <= r) {
		int mid = (l+r)/2;
		vector <int> res(mid);
		iota(res.begin(),res.end(),0);
		if (!add_or(res)) {
			id2 = mid;
			l = mid + 1;
		} else {
			r = mid -1;
		}
	}

	int x1 = id1/W; int y1 = id1%W;
	int x2 = id2/W; int y2 = id2%W;

	if (abs(x1-x2)+abs(y1-y2) == K) {
		add_xor({id1});
	} else {
		add_xor({id1,id2});
	}

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