QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 64 MB مجموع النقاط: 20

#23773. Го тастарын тізу

الإحصائيات

Есеп

Үстелдің үстіне ақ және қара го тастарын қатарға тізіп ойнаймыз. Алдымен үстелдің сол жақ шетіне го тасын қоямыз. Келесіде сол жақтан санағанда $2$-ші орынға го тасын қоямыз. Осыны $n$ рет қайталап, $n$ го тасын көлденең бір қатарға тіземіз. Алайда, жаңадан $i$-ші го тасын қойған кезде үстел үстіндегі го тастарын келесі ережеге сәйкес алмастырамыз:

  • $i$ тақ болған жағдайда: үстелде бұрыннан жатқан го тастарын алмастырмай, жаңа го тасын сол жақтан санағанда $i$-ші орынға қоямыз.
  • $i$ жұп болған жағдайда: сол жақтан санағанда $i$-ші орынға жаңадан қойылатын го тасының түсі мен үстелдегі ең оң жақ шеткі го тасының түсі бірдей болса, үстелдегі го тастарын алмастырмай, жаңа го тасын сол жақтан санағанда $i$-ші орынға қоямыз. Олай болмаса, яғни сол жақтан санағанда $i$-ші орынға жаңадан қойылатын го тасының түсі мен үстелдегі ең оң жақ шеткі го тасының түсі әртүрлі болса, алдымен үстелдің оң жақ шетіндегі қатарынан орналасқан бір түсті го тастарының барлығын алып тастап, оларды $i$-ші го тасымен бірдей түсті го тастарына алмастырамыз. Содан кейін үстелдің оң жақ шетіне $i$-ші го тасын қоямыз.

Мысалы, алғашқы $7$ го тасын қойған сәтте жағдай мынадай болсын делік:

$$\circ \circ \bullet \bullet \circ \circ \circ$$

(мұндағы $\circ$ ақ го тасын, ал $\bullet$ қара го тасын білдіреді).

  • Егер $8$-ші го тасы ақ ($\circ$) болса, ол оң жақ шеттегі го тасымен бір түсті болғандықтан, сол күйінде қойылады. Демек, үстел үстіндегі го тастары мынадай болады:

$$\circ \circ \bullet \bullet \circ \circ \circ \circ$$

  • Егер $8$-ші го тасы қара ($\bullet$) болса, оның түсі оң жақ шеттегі го тасынан ($\circ$) өзгеше болғандықтан, алдымен үстелдің оң жақ шетіндегі қатарынан жатқан $3$ ақ го тасын ($\circ$) алып тастап, қара го тастарына ($\bullet$) алмастырамыз. Содан соң оң жақ шетке $8$-ші го тасын қоямыз. Демек, үстел үстіндегі го тастары мынадай болады:

$$\circ \circ \bullet \bullet \bullet \bullet \bullet \bullet$$

Кіріс деректері ретінде қойылатын го тастарының реті берілгенде, $n$ го тасын тізіп болғаннан кейін үстел үстінде жатқан ақ го тастарының санын табатын программа құрыңыз.

Енгізу деректері

$1$-ші жолда оң бүтін сан $n$ ($1 \le n \le 100\,000$) жазылған. $2$-ші жолдан бастап $i+1$-ші жолда ($1 \le i \le n$) $i$-ші болып қойылатын го тасының түсін білдіретін $c_{i}$ бүтін саны жазылған: егер $c_{i}$ мәні $0$ болса, $i$-ші қойылатын го тасының түсі ақ екенін, ал $1$ болса, $i$-ші қойылатын го тасының түсі қара екенін білдіреді.

Тест деректерінің ішінде ұпайдың $50\%$ бөлігі үшін $n \le 10\,000$ шарты орындалады.

Шығару деректері

Барлық $n$ го тасын тізіп болғаннан кейін үстел үстінде жатқан ақ го тастарының саны ғана жазылған $1$ жолды шығарыңыз.

Енгізу және шығару мысалдары

Енгізу мысалы 1

8
1
0
1
1
0
0
0
0

Шығару мысалы 1

6

Енгізу мысалы 2

8
1
0
1
1
0
0
0
1

Шығару мысалы 2

2

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.