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

یک جدول \(n \times m\) داریم که در خانه‌ی سطر \(i\)ام، ستون \(j\)ام آن عدد حقیقی \(x_{i, j}\) نوشته شده است. باید هر خانه‌ی این جدول مثل \(x_{i, j}\) را به \(\lfloor x_{i, j} \rfloor\) یا \(\lceil x_{i, j} \rceil\) تبدیل کنیم. باید این تغییرات را طوری انجام دهیم به طوری که جمع سطرها و ستون‌ها تغییر نکند.

از شما می‌خواهیم برنامه‌ای بنویسید که تشخیص دهد انجام این کار شدنی است یا نه و در صورتی که این کار شدنی است، یک روش انجام این کار ارائه دهید.

ورودی

در سطر اول ورودی، عدد صحیح و مثبت \(t\) آمده که تعداد تست‌ها را نشان می‌دهد. \[1 \leq t \leq 100\]

در سطر اول هر تست، دو عدد صحیح \(n\) و \(m\) داده می‌شود که به ترتیب تعداد سطرها و ستون‌ها جدول را نشان می‌دهد. \[1 \leq n, m \leq 100\]

در \(n\) سطر بعدی، در هر کدام \(m\) عدد حقیقی که با فاصله از هم جدا شده‌اند داده می‌شود. عدد \(j\)ام در سطر \(i\)ام همان \(x_{i, j}\) است. هر عدد با دقت دقیقاً ۳ رقم بعد از اعشار داده می‌شود. \[-1000 \lt x_{i, j} \lt 1000\]

خروجی

برای هر تست، در سطر اول خروجی، در صورتی که انجام عملیات‌ها ممکن است، YESو در غیر این صورت NO را چاپ کنید. برای حالت‌هایی که انجام عملیات‌ها ممکن است، یک جدول \(n \times m\) چاپ کنید که عدد سطر \(i\)ام ستون \(j\)ام آن برابر 0 یا 1 است عدد سطر \(i\)ام ستون \(j\)ام به ترتیب نشان دهنده‌ی انتخاب \(\lfloor x_{i, j} \rfloor\) یا \(\lceil x_{i, j} \rceil\) است.

اگر چند حالت برای رسیدن به جواب وجود دارد، یکی را به دلخواه انتخاب کنید.

مثال‌ها

ورودی نمونه ۱

3
2 3
3.000 4.000 1.000
5.000 3.000 1.000
3 2
0.500 0.500
0.500 0.500
0.500 1.000
3 3
5.000 3.333 1.667
2.667 0.000 3.333
3.333 2.667 3.000

خروجی نمونه ۱

YES
0 0 0
0 0 0
NO
YES
0 0 1
1 1 0
0 1 1

توضیح نمونه ۱

در نمونه اول، چون همه‌ی اعداد جدول صحیح هستند، فرقی ندارد که کدام را \(\lfloor . \rfloor\) یا \(\lceil . \rceil\) تبدیل کنیم. در هر حال جدول به صورت زیر می‌شود که جمع سطرها و ستون‌ها ثابت می‌ماند.

\[ \begin{array}{ccc} 3 & 4 & 1 \\ 5 & 3 & 1 \\ \end{array} \]

در نمونه‌ی دوم، هر طوری که \(\lfloor . \rfloor\) یا \(\lceil . \rceil\) بگذاریم، جمع ستون اول عددی صحیح می‌شود ولی جمع ستون اول اکنون ۱.۵ است که عددی صحیح نیست. پس جمع این ستون را نمی‌توانیم ثابت نگه داریم.

در نمونه‌ی سوم می‌توانیم صورت زیر عمل می‌کنیم و جمع سطرها و ستون‌ها ثابت می‌ماند.

\[ \begin{array}{ccc} \lfloor 5.000 \rfloor & \lfloor 3.333 \rfloor & \lceil 1.667 \rceil \\ \lceil 2.667 \rceil & \lceil 0.000 \rceil & \lfloor 3.333 \rfloor \\ \lfloor 3.333 \rfloor & \lceil 2.667 \rceil & \lceil 3.000 \rceil \\ \end{array} \]

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.