QOJ.ac

QOJ

时间限制: 2.0 s 内存限制: 256 MB 总分: 100

#12917. 表格

统计

给定一个 $n \times m$ 的表格,每个单元格包含一个 $+$ 或 $-$。你可以翻转表格的任意行、列或对角线:

示例网格、列、行、对角线、另一种对角线

当你翻转一组单元格时,所有的 $+$ 都会变为 $-$,反之亦然。注意,在一个 $n \times m$ 的网格中,共有 $n$ 行、$m$ 列以及 $2(n + m - 1)$ 条对角线。有些对角线仅包含一个单元格。

你能否将给定的表格变为一个全为 $+$ 的表格?

输入格式

输入文件的第一行包含两个整数 $n$ 和 $m$ —— 表格的维度 ($1 \le n, m \le 1000$)。接下来的 $n$ 行每行包含 $m$ 个字符,描述了该表格。每个字符要么是 $+$,要么是 $-$。

输出格式

如果可以将给定的表格变为仅包含 $+$ 的表格,请在输出文件的第一行打印 Ja,否则打印 Nein。如果打印了 Ja,则在第二行打印你将要使用的翻转次数 $k$。在接下来的 $k$ 行中,每行打印一次翻转的描述。每次翻转由它所涉及的任意两个不同单元格的坐标给出。如果被翻转的行、列或对角线中只有一个单元格,则在这种情况下,将同一个单元格坐标重复两次。每个单元格的第一个坐标在 $1$ 到 $n$ 之间,第二个坐标在 $1$ 到 $m$ 之间。坐标为 $1\ 1$ 的单元格对应输入表格第一行的第一个字符。

注意,你不需要最小化移动次数 $k$。唯一的约束是 $k$ 不能超过 $10000$。

样例

样例输入 1

5 6
------
------
------
------
------

样例输出 1

Ja
6
1 1 5 1
1 2 5 2
1 3 5 3
1 4 5 4
1 5 5 5
1 6 5 6

样例输入 2

3 3
+++
+-+
+++

样例输出 2

Ja
3
1 2 3 2
2 3 3 2
1 2 2 3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.