- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
روی یک میز $2n$ سکه داریم. $n$ سکه در بالای میز با شمارههای ۱ تا $n$ و $n$ سکه در پایین میز با شمارههای ۱ تا $n$ قرار دارند. میدانیم تعدادی (شاید صفر) از سکهها تقلبی، و بقیهی سکهها اصل هستند. سکههای اصل با هم، و سکههای تقلبی باهم، هموزن هستند. همچنین میدانیم وزن سکههای تقلبی کمتر از وزن سکههای اصلی است.
برای هر $i$ و $j$، وزن سکهی $i$ام از طرف بالا میز را با سکهی $j$ام از طرف پایین میز مقایسه کردیم و در صورتی که:
- وزن سکهی $i$ بالا، کمتر سکهی $j$ پایین بود علامت
<
- وزن سکهی $i$ بالا، بیشتر سکهی $j$ پایین بود علامت
>
- وزن سکهی $i$ بالا، برابر سکهی $j$ پایین بود علامت
=
را در سطر $i$ام ستون $j$ام یک جدول $n \times n$ نوشتهایم.
حال میخواهیم از روی این جدول مشخص کنیم کدام سکهها اصل و کدام سکهها تقلبی هستند. ممکن است در جدول داده شده، تناقضی وجود داشته باشد و یا نتوانیم با کمک این دادهها وضعیت را به صورت یکتا مشخص کنیم. از شما میخواهیم برنامهای بنویسید که این سه حالت را شناسایی کرده و نتیجه را اعلام کند.
برای بهتر متوجه شدن سوال، نمونهها را مطالعه کنید.
ورودی
در سطر اول ورودی، عدد صحیح و مثبت $n$ به شما داده میشود. $$1 \leq n \leq 2 ,,000$$
در $n$ سطر بعدی، در هر سطر $n$ کاراکتر داده میشود که یکی از <
، =
یا >
است. یعنی سکهی $i$ام از $j$ام کوچکتر (<
)، بزرگتر (>
) یا مساوی (=
) است.
خروجی
اگر اطلاعات داده شده تناقض دارند عبارت invalid
، در غیراینصورت اگر نمیتوانستیم بهصورت یکتا وضعیت تقلبی یا اصل بودن را شناسایی کنیم عبارت not unique
و در غیراینصورت در دو سطر، در هر سطر یک رشته از 0
(تقلبی) و 1
(اصل) به طول $n$ چاپ کنید که به ترتیب وضعیت تقلبی یا اصل بودن سکههای بالای و پایین میز را نشان میدهد.
مثالها
ورودی نمونه ۱
4
<=<<
<=<<
=>==
<=<<
خروجی نمونه ۱
0010
1011
توضیح نمونه ۱
اگر وزن ۴ سکهی بالا را با $u_1, u_2, u_3, u_4,$ و ۴ سکهی پایین را با $d_1, d_2, d_3, d_4 ,$ نشان دهیم. دادههای جدول بالا به صورت زیر هستند:
\[ \begin{array}{cccc} u_1 \lt d_1 & u_1 = d_2 & u_1 \lt d_3 & u_1 \lt d_4 \\ u_2 \lt d_1 & u_2 = d_2 & u_2 \lt d_3 & u_2 \lt d_4 \\ u_3 = d_1 & u_3 \gt d_2 & u_3 = d_3 & u_3 = d_4 \\ u_4 \lt d_1 & u_4 = d_2 & u_4 \lt d_3 & u_4 \lt d_4 \\ \end{array} \]
سکههای تقلبی با رنگ نارنجی و سکههای اصل با رنگ زرد در تصویر زیر مشخص شدهاند. این تنها حالت ممکن برای تقلبی یا اصل بودن سکهها است و نتیجه مقایسهها هم همین را نشان میدهد.
ورودی نمونه ۲
3
=<<
<=<
<<=
خروجی نمونه ۲
invalid
توضیح نمونه ۲
هر دو سکهی ۱ (بالا و پایین)، ۲ و ۳ باهم هموزن هستند. پس میتوانیم وزن آنها را با $w_1$، $w_2$ و $w_3$ نشان دهیم.
میدانیم سکهی ۱ (بالا) از سکهی ۲ (پایین) سبکتر است ($w_1 \lt w_2$). سکهی ۲ (بالا) از سکهی ۱ (پایین) سبکتر است ($w_2 \lt w_1$). و این تناقض است و پاسخ invalid
میشود.
ورودی نمونه ۳
1
=
خروجی نمونه ۳
not unique
توضیح نمونه ۳
در این حالت دو سکه داریم، سکهی ۱ بالا و سکهی ۱ پایین و میدانیم آنها هموزن هستند. ممکن است هر دو تقلبی و یا هر دو اصل باشند. پس نمیتوان وضعیت آنها را یکتا مشخص کرد و پاسخ not unique
میشود.
ارسال پاسخ برای این سؤال