المپدیا

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

ابزار کاربر

ابزار سایت


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

‎مربع‌ها

در یک صفحه مختصات ‎$n$‎ خط (به‌طول بی‌نهایت) وجود دارد. هر خط یا با محور عمودی مختصات یا با محور افقی مختصات موازی است. از شما خواسته شده است تا تعداد مربع‌هایی که با استفاده از این خطوط ایجاد شده است را بگویید.

برنامه‌ای بنویسید که

  • تعداد خطوط و مختصات هر کدام را از ورودی بخواند؛
  • تعداد مربع‌های تشکیل شده را به‌دست بیاورد و نهایتاً این تعداد را در خروجی بنویسد.

‎ورودی

  • در سطر اول ورودی، عدد ‎$n$‎، تعداد خطوط قرار دارد.
  • در ‎$n$‎ سطر بعدی، در هر سطر صحیح دو عدد ‎$a_i$‎ و ‎$b_i$‎ به ترتیب آمده است. ‎$a_i$‎ به ازای تمام سطرها یا صفر یا یک است. اگر ‎$a_i$‎ برابر صفر باشد یعنی خط ‎$i$‎ ام افقی است و معادله آن برابر ‎$y=b_i$‎ خواهد بود و اگر ‎$a_i$‎ برابر یک باشد یعنی خط‍ ‎$i$‎ ام عمودی است و معادلهٔ آن برابر ‎$x=b_i$‎ می‌باشد.
  • همواره ‎$1 \le n \le 5000$‎، اما در حداقل ‎$20$ درصد تست‌ها ‎$n \le 100$‎ .
  • ‎ $b_i$‎ها در ‎int‎ جا می‌شوند.

خروجی

  • در تنها سطر خروجی تعداد مربع‌ها را بنویسید.
  • دقّت کنید که مربع‌ها می‌توانند با هم تلاقی داشته باشند و الزاماً درونشان کاملاً سفید نیست. هم‌چنین هر مربع با مختصّات چهارگوشه‌اش تعیین شده و حداقل مساحت آن یک واحد مربّع است.

محدودیت‌ها

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

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

ورودي نمونه خروجي نمونه
‎11
‎0 2
‎0 5
‎1 0
‎1 3
‎1 5
‎0 0
‎1 8
‎1 11
‎0 7
1 2
‎1 3‎
12‎

ابزار صفحه