بحث‌های سطح بالا


  • محدودیت زمان: ۲ ثانیه
  • محدودیت حافظه: ۵۱۲ مگابایت

همان‌طور که می‌دانید، این روزها روزهای خاصی در ایران است. همه جا همه در حال بحث و گفت‌وگو راجع به انتخابات هستند و دغدغه‌های جمعی بزرگی بین همه‌ی مردم ایران بوجود آمده. اخیراً بحث‌ها به داخل شرکت‌ها و در زمان کاری هم رسیده؛ تعداد زیادی از شرکت‌های حوزه IT جلسات برنامه‌ریزی شده و نشده‌ای برای بحث سر انتخابات برگزار می‌کنند. وقتی موضوعی در شرکت‌های برنامه‌نویسی وارد می‌شود، همیشه شکل و فرم خودش را از دست می‌دهد و با روش‌های جدید، ابعاد جدیدی از موضوع بررسی می‌شود. برای مثال، همین که برنامه‌نویس‌ها راجع به انتخابات بحث می‌کنند، موضوع جدیدی برای بحث شده است! حتی این موضوع که برنامه‌نویس‌ها راجع به برنامه‌نویس‌هایی که راجع به انتخابات بحث می‌کنند، بحث می‌کنند، موج جدیدی از بحث‌ها را بین برنامه‌نویسان راه انداخته است...

شکل زیر نمای بالا از جلسه‌ای ۴ نفره است که سر انتخابات بحث می‌کنند. ۴ طرف میز، صندلی برنامه‌نویسان وجود دارد و جلوی هر فرد، تبلتی رومیزی وجود دارد که عکس یکی از نامزدهای انتخابات در آن مشخص است. (بدلیل حقیقتاً بی‌طرف بودن Quera در انتخابات، عکس نامزدها سانسور شده و بجای آن‌ها بخشی از یک آباژور قرار داده شده است.)

            ----            
            |  |            
            |  |            
            ----            
    --------------------    
    |      | __ |      |    
    |      |/__\|      |    
    |      | || |      |    
    |      | || |      |    
    |      ------      |    
    |                  |    
    ------        ------    
----| __ |        | __ |----
|  ||/__\|        |/__\||  |
|  || || |        | || ||  |
----| || |        | || |----
    ------        ------    
    |                  |    
    |      ------      |    
    |      | __ |      |    
    |      |/__\|      |    
    |      | || |      |    
    |      | || |      |    
    --------------------    
            ----            
            |  |            
            |  |            
            ----            
Plain text

به این نوع بحث، بحث سطح ۰ می‌گوییم. (فرض کنید داخل اتاقی بروید و ببینید که ۴ نفر خیلی جدی راجع به تعدادی آباژور بحث می‌کنند؛ حقیقتاً بحث سطح صفریست.)

یک شِما (Schema) از بحث سطح ۱ را می‌توانید در اینجا ببینید؛ به این صورت است که ۴ برنامه‌نویس پشت میز جلسات نشسته‌اند و راجع به برنامه‌نویسانی که بحث سطح ۰ دارند، بحث می‌کنند. روی تبلت رومیزی آن‌ها، شِمایی از این برنامه‌نویسان موجود است. در کل بحث سطح xx بین ۴ برنامه‌نویس صورت می‌گیرد که راجع به بحث سطح x1x - 1 حرف می‌زنند. شکل از بالای آن نیز به شکل بحث سطح x1x-1 است با این تفاوت که ابعاد شکل بزرگ شده که یک شکل از بالای بحث سطح ۰ در کوچک‌ترین تبلت‌های آن (بجای آباژورها) قرار بگیرد.

هدف این است که با ورودی گرفتن عدد nn، شکل از بالای بحث سطح nn را در خروجی استاندارد چاپ کنید. اما با توجه به خیلی سطح بالا بودن برخی بحث‌ها، شکل از بالای آن‌ها بسیار بزرگ می‌شود و هنوز جامعه‌ی برنامه‌نویسان به این سطح نرسیده که از آن‌ها بخواهیم که آن را خروجی دهند؛ از این رو، به شما یک مختصات rr و cc (که این دو اعدادی طبیعی‌اند) نیز داده می‌شود که یعنی کافیست به اندازه‌ی یک مربع ۲۰۰ در ۲۰۰ از شکل را خروجی دهید که گوشه‌ی بالا-چپ آن، سطر rrام از بالا و ستون ccام از چپ شکل است. در صورتی که زیر سطر rrام و سمت راست ستون ccام شکل یک مربع ۲۰۰ در ۲۰۰ از هر طرفی جا نمیشد، کافیست تا انتهای آن سمت از شکل را چاپ کنید.

توضیحات دقیق‌تر مربوط به اشکال بحث‌های سطح بالا:

طبق تعریف گفته شده، می‌توانید فرض کنید که هر شکل بحث از بزرگ‌نمایی شکل بحث سطح پایین‌تر بوجود می‌آید که پس از آن داخل تبلت این شکل، شکل بحث ۰ را قرار داده‌ایم.

در این بزرگ‌نمایی، خطوط صرفاً درازتر می‌شوند و قطور تر نمی‌شوند! هم‌چنین بزرگ‌نمایی همیشه با ضریبی طبیعی انجام می‌شود؛ یعنی طول همه‌ی خطوط در کوچک‌ترین اندازه‌ای طبیعی ضرب می‌شود که در داخل تبلت‌ها، شکل مورد نظر جا بشود. اگر شکل تبلت را پر نمی‌کرد، سطرهای پایینی و ستون‌های راستی تبلت‌ها خالی می‌مانند. (این جهت‌ها هنگامیست که از بالا نگاه می‌کنیم و جهت واقعی تبلت‌ها تاثیری بر این‌ها ندارد.) چون خطوط بزرگ‌نمایی می‌شوند، فضاهای خالی بین خطوط نیز قاعدتاً بزرگ‌تر می‌شوند. به جزییات شِمای سطح ۱ بسیار دقت کنید!

اگر دقت کنید، شکل ما متشکل از تعدادی خط افقی و عمودی است. یکی از پیچیدگی‌های این بزرگ‌نمایی، بزرگ‌نمایی یک شکل پیوسته در فضای گسسته‌ی جدول است. خانه‌ی در سطر rr و ستون cc جدول را (r,c)(r, c) می‌نامیم. فرض کنید خطی افقی از خانه‌ی (r,c)(r, c) شروع بشود و در خانه‌ی (r,c)(r, c') تمام بشود؛ پس طول خط برابر ccc' - c می‌شود. (خطوط در شکل واقعی پیوسته هستند؛ پس با اینکه با دید جدولی باید طول این خط برابر cc+1c'-c+1 باشد اما در دید پیوسته، طول آن برابر ccc'-c' است.) فرض کنید که بزرگ‌نمایی با ضریب طبیعی nn انجام می‌شود. پس از این بزرگ‌نمایی، طول این خط باید برابر n(cc)n(c' - c) بشود. پس از آن، دقت کنید که ابعاد تبلت با ضریب بزرگ‌نمایی بزرگ می‌شود ولی شکل بحث سطح ۰ باید کاملاً در تبلت جا بشود؛ یعنی داخل تبلت باید به اندازه‌ی جدول شکل بحث سطح ۰ فضای خالی وجود داشته باشد.

برای مثال:

  • صندلی‌های شِمای بحث سطح ۰، مربع‌های بطول ضلع ۳ هستند و صندلی‌های شِمای بحث سطح ۱، مربع‌هایی بطول ضلع ۱۸ هستند.
  • تبلت‌های رومیزی شِمای بحث سطح ۰، مربع‌های بطول ضلع ۵ هستند.

به این موضوع هم توجه داشته باشید که برای ساخت شکل سطح nn، باید شکل سطح n1n-1 را طوری بزرگ‌نمایی کنید که شکل سطح ۰ در کوچک‌ترین تبلت‌های آن جا بشود؛ نه اینکه شکل سطح ۰ را بزرگ‌نمایی کنید تا شکل سطح n1n-1 در تبلت‌ها جا بشود!

در این سوال، بسته به تعداد تست‌هایی که درست پاسخ دهید نمره می‌گیرید. برنامه‌ی شما هرچه بهینه‌تر باشد و برای حالات بیشتری پاسخ درست بدهد، نمره‌ی بیشتری دریافت خواهد کرد.

ورودی🔗

ورودی تنها شامل یک خط است که در آن سه عدد nn و xx و yy آمده اند. 0n50 \le n \le 5 1x,yf(n)1 \le x, y \le f(n) که f(n)f(n) طول ضلع مربع شکل از بالای بحث سطح nn است.

در نصف تست‌ها داریم: n3n \le 3. یعنی با این فرض شما حداقل نصف نمره را دریافت می‌کنید.

خروجی🔗

شکل از بالای بخش گفته شده از بحث سطح nn را چاپ کنید. دقت کنید که تمام فواصل باید با space گذاشته شوند. هرگونه کاراکتر اضافی از قبیل space و tab و یا سطر خالی اضافه در داخل شکل باعث غلط محسوب شدن پاسخ شما می‌شود. space اضافی در انتهای خط و سطرهای خالی از کاراکتر خوانا در انتهای خروجی تاثیری ندارد. (خطوط خالی ابتدا و میانه‌ی خروجی مهم هستند.)

مثال🔗

ورودی نمونه ۱🔗

0 1 1
Plain text

خروجی نمونه ۱🔗

            ----
            |  |
            |  |
            ----
    --------------------
    |      | __ |      |
    |      |/__\|      |
    |      | || |      |
    |      | || |      |
    |      ------      |
    |                  |
    ------        ------
----| __ |        | __ |----
|  ||/__\|        |/__\||  |
|  || || |        | || ||  |
----| || |        | || |----
    ------        ------
    |                  |
    |      ------      |
    |      | __ |      |
    |      |/__\|      |
    |      | || |      |
    |      | || |      |
    --------------------
            ----
            |  |
            |  |
            ----
Plain text

ورودی نمونه ۲🔗

0 3 9
Plain text

خروجی نمونه ۲🔗

    |  |
    ----
----------------
   | __ |      |
   |/__\|      |
   | || |      |
   | || |      |
   ------      |
               |
--        ------
 |        | __ |----
\|        |/__\||  |
 |        | || ||  |
 |        | || |----
--        ------
               |
   ------      |
   | __ |      |
   |/__\|      |
   | || |      |
   | || |      |
----------------
    ----
    |  |
    |  |
    ----
Plain text

ورودی نمونه ۳🔗

1 80 100
Plain text

خروجی نمونه ۳🔗

         |----| __ |        | __ |---- |     |                 |
         ||  ||/__\|        |/__\||  | |     |                 |
         ||  || || |        | || ||  | |     |                 |
         |----| || |        | || |---- |     |                 |
         |    ------        ------     |     |                 |
         |    |                  |     |     |                 |
         |    |      ------      |     |     |                 |
         |    |      | __ |      |     |     |                 |
         |    |      |/__\|      |     |     |                 |
         |    |      | || |      |     |     |                 |
         |    |      | || |      |     |     |                 |
         |    --------------------     |     -------------------
         |            ----             |
         |            |  |             |
         |            |  |             |
         |            ----             |
         |                             |
         -------------------------------
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
                                       |
----------------------------------------
























Plain text

ورودی نمونه ۴🔗

2 100 300
Plain text

خروجی نمونه ۴🔗

خروجی نمونه را می‌توانید در اینجا ببینید!

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.