Submission #1327111

#TimeUsernameProblemLanguageResultExecution timeMemory
1327111nikaa123Vision Program (IOI19_vision)C++20
0 / 100
5 ms1080 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 = 0;
	while (l <= r) {
		int mid = (l+r)/2;
		vector <int> res(mid+1);
		iota(res.begin(),res.end(),0);
		if (add_or(res) == 0) {
			id1 = mid;
			l = mid + 1;
		} else {
			r = mid -1;
		}
	}
	// cout << "id1 --- " << id1 << endl;

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

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