خط شکسته


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

امین یک جدول n×mn \times m دارد که هر خانه‌ی آن یکی از کاراکتر‌های .، /، \ یا _ است. هر کاراکتر از این جدول نشان دهنده وضعیت یک خانه 1×11 \times 1 (یا همان مربع واحد) متناظر آن در صفحه است. این جدول در نهایت، یک خط شکسته را نمایش می‌دهد.

کاراکتر . نشان می‌دهد هیچ قسمتی از خط شکسته در مربع واحد متناظر با این خانه وجود ندارد: توضیح تصویر

کاراکتر _ نشان می‌دهد خط شکسته حاوی ضلع پایینی مربع واحد متناظر با این خانه از جدول است: توضیح تصویر

کاراکتر / نشان می‌دهد خط شکسته حاوی قطر فرعی مربع واحد متناظر با این خانه از جدول است: توضیح تصویر

کاراکتر \ نشان می‌دهد خط شکسته حاوی قطر اصلی مربع واحد متناظر با این خانه از جدول است: توضیح تصویر

تضمین می‌شود شکل بدست آمده یک خط شکسته پیوسته است که سمت چپ صفحه را به سمت راست صفحه n×mn \times m متصل می‌کند؛ در واقع صفحه n×mn \times m را به دو قسمت بالایی و پایینی تقسیم می‌کند.

امین می‌خواهد مساحت قسمت پایین ایجاد شده توسط این خط شکسته را محاسبه کند. به او کمک کنید تا این کار را انجام دهد.

ورودی🔗

در سطر اول ورودی یک عدد طبیعی tt آمده که نشان دهنده تعداد مثال‌هایی است که داده می‌شود.

برای هر مثال در سطر اول دو عدد طبیعی nn و mm با فاصله از هم آمده که نشان دهنده ابعاد جدول است. 1n,m1001 \le n, m \le 100 در nn سطر بعدی در هر سطر دقیقاً mm کاراکتر آمده که هر کدام از این کاراکتر‌ها برابر .، /، \ یا _خواهد بود.

تضمین می‌شود ورودی داده شده جدول یک خط شکسته پیوسته است که از سمت چپ جدول شروع شده و به سمت راست جدول ختم می‌شود و در هر ستون دقیقا یک کاراکتر غیر . دارد.

تضمین می‌شود اندازه جدول‌های این tt مثال از 10 00010\ 000 بیشتر نخواهد بود.

خروجی🔗

خروجی برنامه شما tt سطر دارد که در سطر iiام آن مساحت زیر نمودار شکل iiام را با دقت ۳ رقم بعد از اعشار چاپ کنید.

مثال🔗

ورودی نمونه ۱🔗

3
3 3
___
...
...
1 1
\
3 5
../\.
_/..\
.....
Plain text

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

6.000
0.500
9.000
Plain text

شکل‌ مربوط به خط شکسته اول توضیح تصویر

شکل‌ مربوط به خط شکسته سوم توضیح تصویر

ورودی نمونه ۲🔗

1
6 20
....................
../\................
_/..\.........../\..
.....\........./..\_
......\__...../.....
.........\___/......
Plain text

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

41.500
Plain text

شکل‌ مربوط به خط شکسته داده شده توضیح تصویر

قسمت آموزشی🔗

در این قسمت راهنمایی‌های سوال، به مرور اضافه می‌شود. مشکلات‌تان در راستای حل سوال را می‌توانید از بخش "سوال بپرسید" مطرح کنید.

راهنمایی ۱

اگر مساحت ایجاد شده توسط خط شکسته را برای یک ستون محاسبه کنید می‌توانید پاسخ مسئله را بدست آورید. (چرا؟)

راهنمایی ۲

با توجه به کاراکتری که در هر ستون وجود دارد؛ باید مساحت یک ذوزنقه یا مستطیل را محاسبه کنیم.

راهنمایی ۳

شبه کد حل سوال را می‌توانید مشاهده کنید:

area = 0.0
for column from 1 to m:
    for row from 1 to n:
        if row != '.':
            area += (n - 1 - row)
            if row != '_':
                area += 0.5
print area
Plain text