Loading [MathJax]/jax/output/HTML-CSS/jax.js

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۶:عملی:سوال ۱۵

چنبره

یک چنبره جدولی است n×n به‌طوری که سطر اول و سطر آخرش مجاور هم هستند و ستون اول و آخرش هم مجاور یک‌دیگرند. به‌عنوان مثال خانه‌ی (1 , 1) که خانه‌ی گوشه‌ی بالا و سمت چپ جدول است مجاور خانه‌های ( n و 1 ) (خانه‌ی گوشه بالا و سمت راست جدول) و ( 1 و n ) (خانه‌ی گوشه‌ی پایین و سمت چپ جدول) است.

یک چنبره را با اعدادی پر کرده و اسم آن را A قرار داده‌ایم. شما بایستی یک چنبره‌ی B را طبق قانونی که در زیر گفته شده پر کنید.

یک عدد k به شما داده شده است. برای هر خانه‌ی (j,i) از جدول مربعی به ضلع 2k+1 حول آن در نظر بگیرید بطوری که خانه‌ی مرکزی مربع خانه‌ی (j,i) باشد؛ شما بایستی مجموع اعداد این مربع از چنبره‌ی A را در خانه‌ی (j,i) از چنبره‌ی B قرار دهید.

ورودی

  • در سطر اول ورودی به‌ترتیب n و k نوشته شده است.
  • در n سطر بعدی در هر سطر n عدد نوشته شده است به‌طوری که اعداد سطر i+1 ورودی اعداد سطر i از چنبره‌ی A را نشان می‌دهد.
  • 12k+1n1000

خروجی

خروجی n سطر دارد و شما بایستی در هر سطر n عدد بنویسید به‌طوری که اعداد سطر iام خروجی اعداد سطر iام چنبره‌ی B را نشان می‌دهد.

محدودیت‌ها

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

ورودي و خروجي نمونه

ورودي نمونه خروجي نمونه
4 1
3 1 1 2
1 1 2 1
1 2 1 1
2 1 1 1
13 13 11 14
13 13 12 13
11 12 11 11
14 13 11 13

توصیه

می‌دانیم اعداد چنبره‌های A و B در long long جا می‌شوند. ولی ممکن است مجموع اعداد چنبره‌ی A خیلی بیش‌تر از بزرگ‌ترین عددی باشد که در long long جا می‌شود. برای خواندن یک عدد long long از ورودی از دستور (fscanf(fin, »%lld», &x و برای نوشتن آن در خروجی از دستور (fprintf(fout, »%lld», x استفاده کنید.


ابزار صفحه