Submission #38188430


Source Code Expand

#line 2 "/home/zawatin/compro/library/src/template/binary-search.hpp"

#include <cmath>

namespace zawa {

template <class T, class F>
T binary_search(T ok, T ng, const F& f) {
	while (std::abs(ok - ng) > 1) {
		T mid = ((ok + ng) >> 1);
		if (f(mid)) {
			ok = mid;
		}
		else {
			ng = mid;
		}
	}
	return ok;
}

}
#line 2 "/home/zawatin/compro/library/src/dataStructure/accum2d.hpp"

#include <vector>
#include <utility>

namespace zawa {

template <class T>
struct accum2d : std::vector<std::vector<T>> {
	accum2d() {
		(*this).push_back({ T() });
	}
	accum2d(const std::vector<std::vector<T>>& A) : std::vector<std::vector<T>>(A.size() + 1, std::vector<T>(A[0].size() + 1, T())) {
		for (std::size_t i = 0 ; i < A.size() ; i++) {
			for (std::size_t j = 0 ; j < A[i].size() ; j++) {
				(*this)[i + 1][j + 1] = (*this)[i][j + 1] + (*this)[i + 1][j] - (*this)[i][j] + A[i][j];
			}
		}
	}
	T sum(std::size_t y1, std::size_t x1, std::size_t y2, std::size_t x2) {
		return (*this)[y2][x2] - (*this)[y1][x2] - (*this)[y2][x1] + (*this)[y1][x1];
	}
	T sum(std::pair<std::size_t, std::size_t> p1, std::pair<std::size_t, std::size_t> p2) {
		return sum(p1.first, p1.second, p2.first, p2.second);
	}
};

} // namespace zawa
#line 3 "ABC203.test.cpp"

#include <iostream>
#line 6 "ABC203.test.cpp"

int main() {
	int N, K; std::cin >> N >> K;
	std::vector A(N, std::vector(N, 0));
	for (auto& a : A) {
		for (auto& x : a) {
			std::cin >> x;
		}
	}
	auto f = [&](int p) -> bool {
		std::vector B(N, std::vector(N, 0));
		for (int i = 0 ; i < N ; i++) {
			for (int j = 0 ; j < N ; j++) {
				B[i][j] = (A[i][j] <= p);
			}
		}
		zawa::accum2d S(B);
		bool res = false;
		for (int i = 0 ; i + K <= N ; i++) {
			for (int j = 0 ; j + K <= N ; j++) {
				res |= S.sum(i, j, i + K, j + K) >= (K * K + 1) / 2;
			}
		}
		return res;
	};
	std::cout << zawa::binary_search((int)1e9, -1, f) << std::endl;
}

Submission Info

Submission Time
Task D - Pond
User zawatin
Language C++ (GCC 9.2.1)
Score 400
Code Size 1973 Byte
Status AC
Exec Time 288 ms
Memory 10900 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 25
Set Name Test Cases
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, special_00.txt, special_01.txt, special_02.txt, special_03.txt, special_04.txt, special_05.txt, special_06.txt, special_07.txt
Case Name Status Exec Time Memory
example_00.txt AC 3 ms 3508 KiB
example_01.txt AC 2 ms 3464 KiB
random_00.txt AC 216 ms 9120 KiB
random_01.txt AC 221 ms 9396 KiB
random_02.txt AC 232 ms 9728 KiB
random_03.txt AC 238 ms 10132 KiB
random_04.txt AC 218 ms 9148 KiB
random_05.txt AC 241 ms 9940 KiB
random_06.txt AC 211 ms 9212 KiB
random_07.txt AC 272 ms 10724 KiB
random_08.txt AC 263 ms 10848 KiB
random_09.txt AC 259 ms 10832 KiB
random_10.txt AC 275 ms 10832 KiB
random_11.txt AC 264 ms 10836 KiB
random_12.txt AC 262 ms 10900 KiB
random_13.txt AC 267 ms 10832 KiB
random_14.txt AC 268 ms 10728 KiB
special_00.txt AC 255 ms 10732 KiB
special_01.txt AC 275 ms 10736 KiB
special_02.txt AC 280 ms 10796 KiB
special_03.txt AC 288 ms 10656 KiB
special_04.txt AC 3 ms 3448 KiB
special_05.txt AC 3 ms 3580 KiB
special_06.txt AC 267 ms 10360 KiB
special_07.txt AC 129 ms 9216 KiB