QOJ.ac

QOJ

시간 제한: 2 s 메모리 제한: 256 MB 총점: 100

#22626. الأمواج

통계

تستمتع أبقار المزارع John كثيرًا برمي الحصى في البحيرة المجاورة لمرعاها. عندما تصطدم حصاة بسطح البحيرة تولد موجة تنتشر عليه.

يمثل السطح بشبكة كبيرة من المربعات. يحدد تفاعل الأمواج عمق الماء في كل مربع. قبل رمي أي حصاة يكون العمق 0 في كل مربع باستثناء مربعات ضفاف النهر الأصلية. تمثل المربعات كما يلي:

  • o: العمق أقل من 0.

  • -: العمق يساوي 0.

  • *: العمق أكبر من 0.

  • X: المربع جزء من ضفة النهر الأصلية.

تولد الحصاة موجة ماء مرتفع تنتشر بشكل معين يتسع كل ثانية. يزيد عمق كل مربع على المعين بمقدار 1 لمدة ثانية واحدة فقط. بعد ثانيتين تتبعها موجة ماء منخفض تخفض العمق بمقدار 1 وتنتشر كذلك كمعين. كل حصاة تولد موجتين فقط، المرتفعة ثم المنخفضة.

مثلًا، يبين الرسم أثر حصاة سقطت وسط البحيرة بعد 0 و1 و2 و3 ثوان من سقوطها:

0 seconds   1 second    2 seconds   3 seconds
 -------     -------     -------     ---*---
 -------     -------     ---*---     --*-*--
 -------     ---*---     --*-*--     -*-o-*-
 ---*---     --*-*--     -*-o-*-     *-o-o-*
 -------     ---*---     --*-*--     -*-o-*-
 -------     -------     ---*---     --*-*--
 -------     -------     -------     ---*---

الأعمدة من اليسار إلى اليمين تمثل 0 و1 و2 و3 ثوان.

للضفتين إحداثيات $x$ ثابتة وتمتدان بطول البحيرة كله من الأعلى إلى الأسفل، بعرض مربع واحد. عندما تصل موجة إلى ضفة لا تعبرها: تواصل الاتساع لكن الجزء الذي يصطدم بالضفة ينعكس.

يبين الرسم الثواني الأولى لموجة تصطدم بإحدى الضفتين. لتوضيح الرسم لم تظهر موجة الماء المنخفض الثانية:

1 second    2 seconds   3 seconds   4 seconds   5 seconds
 X------     X------     X--*---     X-*-*--     X*---*-
 X------     X--*---     X-*-*--     X*---*-     X*----*
 X--*---     X-*-*--     X*---*-     X*----*     X-*----
 X-*-*--     X*---*-     X*----*     X-*----     X--*---
 X--*---     X-*-*--     X*---*-     X*----*     X-*----
 X------     X--*---     X-*-*--     X*---*-     X*----*
 X------     X------     X--*---     X-*-*--     X*---*-

الأعمدة من اليسار إلى اليمين تمثل 1 و2 و3 و4 و5 ثوان.

عند التقاء أجزاء الأمواج لا تؤثر في انتشار بعضها. في اللحظة التالية تتسع كما لو لم تلتق. لكن آثارها على البحيرة تجمع معًا. مثلًا:

 1 second      2 seconds     3 seconds     4 seconds
 ---------     ---------     ---------     ---*-----
 ---------     ---------     ---*-----     --*-*-*--
 ---------     ---*-----     --*-*-*--     -*-o-*-*-
 ---*-----     --*-*-*--     -*-o-*-*-     *-o-----*
 --*-*-*--     -*-o-*-*-     *-o-----*     -o-*-o---
 ---*-----     --*-*-*--     -*-o-*-*-     *-o-----*
 ---------     ---*-----     --*-*-*--     -*-o-*-*-
 ---------     ---------     ---*-----     --*-*-*--
 ---------     ---------     ---------     ---*-----

الأعمدة من اليسار إلى اليمين تمثل 1 و2 و3 و4 ثوان.

اكتب برنامجًا يساعد الأبقار على معرفة كيفية انتشار الأمواج بمرور الوقت.

الإدخال

  • السطر 1: أربعة أعداد صحيحة $P$, $B1$, $B2$, $R$ تفصل بينها فراغات.

    • $P$ ($1 \le P \le 5$) هو عدد الحصى.

    • $B1$ ($-500{,}000 \le B1 \le 500{,}000$) و$B2$ ($-500{,}000 \le B2 \le 500{,}000$) هما إحداثيا $x$ للضفتين.

    • $R$ ($1 \le R \le 500{,}000$) هو الوقت المطلوب عرض البحيرة فيه.

لن تسقط حصاتان في الموضع نفسه في الوقت نفسه. للضفتين إحداثيات $x$ مختلفة، ولن تسقط أي حصاة على ضفة.

  • الأسطر $2..P+1$: ثلاثة أعداد صحيحة تفصل بينها فراغات تصف حصاة: $X$ ($-500{,}000 \le X \le 500{,}000$) و$Y$ ($-500{,}000 \le Y \le 500{,}000$) و$T$ ($1 \le T \le 500{,}000$).

    • $X$ و$Y$ إحداثيا موضع سقوط الحصاة.

    • $T$ هو وقت سقوط الحصاة.

الإخراج

  • الأسطر من 1 إلى 9: شبكة $9 \times 9$ مركزها $(0,0)$. تمثل الزاوية السفلية اليسرى $(-4,-4)$ والعلوية اليمنى $(4,4)$. يجب أن تمثل حالة البحيرة عند الوقت $R$.

أمثلة

الإدخال 1

2 4 100 4
-3 0 1
0 0 2

الإخراج 1

--------X
-*------X
*-*-*---X
-o-*-*--X
o-----*-X
-o-*-*--X
*-*-*---X
-*------X
--------X

مؤلف المسألة: Richard Forster، BIO 2003، 2003

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.