صحیح سازی


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

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

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

ورودی🔗

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

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

در nn سطر بعدی، در هر کدام mm عدد حقیقی که با فاصله از هم جدا شده‌اند داده می‌شود. عدد jjام در سطر iiام همان xi,jx_{i, j} است. هر عدد با دقت دقیقاً ۳ رقم بعد از اعشار داده می‌شود. 1000<xi,j<1000-1000 \lt x_{i, j} \lt 1000

خروجی🔗

برای هر تست، در سطر اول خروجی، در صورتی که انجام عملیات‌ها ممکن است، YESو در غیر این صورت NO را چاپ کنید. برای حالت‌هایی که انجام عملیات‌ها ممکن است، یک جدول n×mn \times m چاپ کنید که عدد سطر iiام ستون jjام آن برابر 0 یا 1 است عدد سطر iiام ستون jjام به ترتیب نشان دهنده‌ی انتخاب xi,j\lfloor x_{i, j} \rfloor یا xi,j\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
Plain text

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

YES
0 0 0
0 0 0
NO
YES
0 0 1
1 1 0
0 1 1
Plain text
توضیح نمونه ۱

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

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

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

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

5.0003.3331.6672.6670.0003.3333.3332.6673.000 \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}