QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 256 MB 満点: 100

#11099. 敲擊金鑰

統計

Goran 做完膝頭手術,正喺康復期間,佢用一張儲存密碼學金鑰嘅智能卡做實驗。喺呢題入面,金鑰係一個長度為 $3n$ 嘅位元字串,其中 $n$ 係正整數。金鑰嘅各個位元由左至右用整數 $1$ 至 $3n$ 編號。金鑰嘅權重係相鄰而且唔同嘅位元對數再加一。例如,金鑰 000 嘅權重係 $1$,而金鑰 011010100 嘅權重係 $7$。

佢發現,向智能卡嘅電路發送細小電流脈衝,就可以竄改金鑰。具體嚟講,佢可以可靠咁執行以下操作:任揀金鑰入面兩個相鄰位元,將兩者一齊翻轉。例如,一次操作可以將金鑰 000 變成 110。

畀定一個長度為 $3n$ 嘅金鑰,求任意一個最多包含 $n$ 次操作嘅序列,將畀定金鑰變成權重至少為 $2n$ 嘅金鑰。你可以假設一定有解。

輸入格式

第一行包含一個由數字 0 同 1 組成嘅字串,表示初始金鑰。金鑰長度為 $3n$,其中 $n$ 係滿足 $1 \le n \le 100\,000$ 嘅正整數。

輸出格式

第一行應該包含一個整數 $m$,其中 $0 \le m \le n$,表示你嘅方案嘅操作次數。下一行應該包含 $m$ 個整數 $a_1,a_2,\ldots,a_m$,描述你嘅方案。$a_k$ 係第 $k$ 步翻轉嘅兩個位元之中,左邊嗰個嘅編號。

如果初始金鑰嘅權重已經至少係 $2n$,你可以只輸出整數 $0$。

範例

輸入格式 1

000000000

輸出格式 1

3
2 5 6

輸入格式 2

111001000111

輸出格式 2

2
3 9

輸入格式 3

010101

輸出格式 3

0

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.