QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18933. Obat Pagi

الإحصائيات
problem_18933_a3d09dfd60c8e69e0c4e0ae286b322fb.png

Subin menerima resep di rumah sakit dan membeli obat untuk $N$ hari di apotek. Obat untuk satu hari terdiri dari masing-masing satu bungkus obat pagi, obat siang, dan obat malam, dengan total $3N$ bungkus obat yang terhubung dalam satu baris sesuai urutan berikut:

obat pagi, obat siang, obat malam, obat pagi, obat siang, obat malam, $\cdots$

Orang biasa cukup makan tiga kali sehari secara teratur dan memotong bungkus obat satu per satu secara berurutan dari depan untuk diminum. Namun, pola hidup Subin tidak biasa. Pada hari tertentu ia hanya makan malam, dan pada hari lain ia melewatkan sarapan. Oleh karena itu, Subin tidak ingin meminum obat secara berurutan dari depan, melainkan ingin meminumnya sesuai dengan urutan makannya. Tentu saja, Subin berniat meminum semua obat tersebut tanpa menyisakan satu bungkus pun.

Akan tetapi, Subin sangat tidak suka melihat bungkus obat yang terhubung terbelah menjadi dua bagian. Oleh sebab itu, setiap kali meminum obat, Subin hanya memotong satu bungkus obat dari bagian paling depan atau paling belakang dari bungkus obat yang tersisa saat itu. Memotong bungkus obat yang berada di tengah sehingga membuat sisa bungkus obat terbelah menjadi dua bagian tidak diperbolehkan.

Diberikan urutan Subin ingin meminum obat, tentukan apakah semua obat dapat diminum sesuai urutan tersebut sambil mematuhi syarat di atas.

Masukan

Baris pertama berisi sebuah bilangan bulat $N$ yang menyatakan untuk berapa hari obat yang dibeli. ($1 \le N \le 1\,000\,000$)

Baris kedua berisi sebuah string $S$ dengan panjang $3N$ yang menyatakan urutan Subin ingin meminum obat. String $S$ hanya terdiri dari B, L, dan D, serta ketiga karakter tersebut masing-masing muncul tepat $N$ kali.

Karakter B berarti obat pagi, L berarti obat siang, dan D berarti obat malam.

Keluaran

Jika semua obat dapat diminum sesuai urutan $S$ sambil mematuhi syarat, keluarkan Yes, jika tidak, keluarkan No.

Contoh

Masukan 1

1
LBD

Keluaran 1

No

Masukan 2

2
BLDDBL

Keluaran 2

Yes

Catatan

Pada contoh pertama, bungkus obat yang tersisa pada awalnya dari depan adalah urutan obat pagi, obat siang, obat malam. Obat pertama yang harus diminum adalah obat siang, tetapi obat siang bukan berada di paling depan maupun paling belakang, sehingga tidak dapat diminum sambil mematuhi syarat.

Pada contoh kedua, jika bungkus obat dipotong dan diminum dengan urutan paling depan, paling depan, paling depan, paling belakang, paling depan, paling depan, maka semua obat dapat diminum sesuai urutan yang diberikan.

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.