- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۶۴ مگابایت
یک مربع جادویی، یک ماتریس است که در آن، عداد تا قرار دارند و مجموع اعداد هر سطر، هر ستون و هر قطر، باهم برابر است. شکل زیر یک مربع جادویی را نشان میدهد که در آن اعداد یک تا ۹ قرار گرفتهاند و مجموع اعداد هر سطر، ستن و قطر برابر با ۱۵ است.
یک راه حل برای ساختن مربع جادویی از مرتبهی فرد (وقتی که فرد باشد)، قرار دادن کمینهی اعداد در خانهی شماره از ردیف اول و سپس شروع به قراردهی اعداد از عدد مطابق الگوریتم زیر است. توجه شود که بالاترین سطر شماره یک، پایینترین سطر شماره ، چپترین ستون شماره یک و راستترین ستون شماره فرض شده است.
-
به سمت راست-بالا حرکت کن؛ بنابراین اگر خانهی فعلی سطر و ستون باشد، خانهی بعدی سطر و ستون خواهد بود.
-
اگر شمارهی سطر و شمارهی ستون خانه از یک تا باشد، به مرحلهی شماره ۳ برو. در غیر این صورت، چنانچه شمارهی سطر صفر باشد، شمارهی سطر را به تغییر بده و در صورتی که شماره ستون باشد، آن را به شمارهی یک تغییر بده.
-
چنانچه خانه قبلاً توسط عددی پر شده باشد، شمارهی سطر را یک عدد افزایش بده (یک ردیف یه پایین بیا)؛ در غیر این صورت به مرحلهی ۴ برو.
-
عدد را در خانه قرار بده. اگر تمامی خانهها پر باشد، مربع جادویی ساختهشده است؛ در غیر این صورت عدد را یکی افزایش بده و مرحلهی یک را تکرار کن.
در شکل زیر، برابر یا یک و برابر با سه است. مراحل این الگوریتم به ترتیب مشاهده میشود. همانطور که میبینید، خروجی الگوریتم، مربعی جادویی است مجموع هر سطر، ستون و یا قطر آن برابر با ۱۵ است. حال برنامهای بنویسید که ابتدا عدد و سپس عدد گفته شده در بالا را دریافت کند و مطابق با الگوریتم گفته شده، مربع جادویی را تولید کند.
ورودی
در ورودی عدد و آمده است.
خروجی
در خروجی مربع جادویی را چاپ کنید.
مثال
ورودی نمونه ۱
خروجی نمونه ۱
ارسال پاسخ برای این سؤال