#include #include #include #include struct Input { int N = 0; int K = 0; std::vector> d; }; struct Output { std::vector> cut_trees; }; Input read_input(std::istream& in = std::cin) { Input input; in >> input.N >> input.K; input.d.assign(input.N, std::vector(input.N)); for (int i = 0; i < input.N; ++i) { for (int j = 0; j < input.N; ++j) { // 乾燥度は1桁なので、連続した数字と空白区切りの両方を読める。 char digit; in >> digit; input.d[i][j] = digit - '0'; } } return input; } void print_output(const Output& output, std::ostream& out = std::cout) { out << output.cut_trees.size() << '\n'; for (const auto& [i, j] : output.cut_trees) { out << i << ' ' << j << '\n'; } } Output solve(const Input& input) { // 解法は未実装。この関数では標準出力を行わない。 (void)input; return {}; } // E0 と E は正の期待焼失本数。期待値自体の計算は行わない。 long long calc_score(double E0, double E) { return std::llround(1'000'000.0 * (1.0 + std::log2(E0 / E))); } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); const Input input = read_input(); const Output output = solve(input); print_output(output); return 0; }