کلید چراغ


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

چراغی داریم که با تغییر وضعیت یک کلید، از روشن به خاموش و بالعکس تغییر می‌کند. وضعیت روشنایی این چراغ را در nn ثانیه متوالی داریم و می‌دانیم در ثانیه iiام از این nn ثانیه چراغ روشن بوده یا خاموش. حال وظیفه شما این است که بگویید این چراغ در مجموع چند بار تغییر وضعیت داده است.

ورودی🔗

در خط اول ورودی به شما عدد nn داده می‌شود.

در nn خط بعدی، در هر خط به شما یک عدد داده می‌شود که اگر عدد داده‌شده در iiامین خط برابر با 11 بود یعنی چراغ در ثانیه iiام از این nnثانیه روشن و اگر برابر با 00 بود یعنی چراغ در آن ثانیه خاموش بوده‌ است. 1n1 000 1 \le n \le 1\ 000

خروجی🔗

خروجی شامل یک عدد است که بیانگر تعداد دفعاتی است که کلید تغییر وضعیت می‌دهد.

مثال🔗

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

4
0
0
1
0
Plain text

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

2
Plain text

توضیح نمونه: در این نمونه چراغ یک بار در ثانیه ۳ و یک بار در ثانیه ۴ تغییر وضعیت می‌دهد.

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

5
1
1
1
1
1
Plain text

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

0
Plain text

توضیح نمونه: در این نمونه چراغ همیشه روشن است و تغییر وضعیت نمی‌دهد.

دیوار مهربانی


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

دیواری داریم که به شکل یک مستطیل n×mn \times m است. هر خانه از این دیوار یا آجری است یا شیشه‌ای. اگر آجری باشد،‌ قسمتی از بدنه‌ دیوار و اگر شیشه‌ای باشد، قسمتی از پنجره است.

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

در ورودی یک دیوار به شما داده می‌شود که تضمین می‌شود محیط آن کاملا از آجر تشکیل شده است. حال شما باید تشخیص دهید که تمامی پنجره‌های دیوار استاندارد هستند یا خیر.

ورودی🔗

در خط اول ورودی به شما دو عدد nn و mm داده می‌شوند که نشان‌دهنده ابعاد دیوار هستند.

در iiامین خط از nn خط بعدی، یک رشته به طول mm متشکل از + و * آمده است که jjامین عنصر آن، نشان‌دهنده نوع خانه واقع در تقاطع سطر iiام و ستون jjام می‌باشد. اگر این عنصر + باشد، نشان‌دهنده وجود پنجره و در غیر این صورت نشان‌دهنده وجود آجر است. 2n,m502 \le n, m \le 50

خروجی🔗

اگر در دیوار داده شده، پنجره‌ای غیر استاندارد وجود دارد، چاپ کنید bad wall. در غیر این صورت عبارت good wall را خروجی دهید.

مثال🔗

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

2 3
***
***
Plain text

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

good wall
Plain text

توضیح نمونه: در این نمونه هیچ پنجره‌ای نداریم، بنابراین دیوار یک دیوار خوب است.

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

6 5
*****
*+*+*
***+*
*++**
*++**
*****
Plain text

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

good wall
Plain text

توضیح نمونه: در این نمونه سه پنجره داریم که هر سه آن‌ها مستطیلی هستند.

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

4 4
****
*+**
*++*
****
Plain text

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

bad wall
Plain text

توضیح نمونه: در این نمونه تنها یک پنجره وجود دارد که به شکل مستطیل نیست.

کوچکِ بزرگ


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

تابع F(x)F(x) را تعریف می‌کنیم کوچکترین عدد طبیعی که دقیقا xx تا مقسوم‌علیه داشته باشد. برای مثال F(3)F(3) برابر با ۴ و F(6)F(6) برابر با ۱۲ است.

حال یک عدد nn به شما داده می‌شود و شما باید مقداری را خروجی دهید که در میان تمام اعداد طبیعی کمتر مساوی nn، بیشترین مقدار خروجی را در تابع FF داشته باشد. در صورتی که چند عدد مختلف ویژگی مورد نظر را داشتند، بزرگترین آن‌ها را خروجی دهید.

به عنوان مثال می‌دانیم که F(6)=12F(6) = 12، زیرا تعداد مقسوم‌علیه‌های اعداد ۱ تا ۱۲ به ترتیب برابر است با ۱، ۲، ۲، ۳، ۲، ۴، ۲، ۴، ۳، ۴، ۲، ۶. بنابراین عدد ۱۲ کوچکترین عددی است که دقیقا ۶ مقسوم‌علیه دارد.

ورودی🔗

در تنها خط ورودی به شما عدد nn داده می‌شود. 1n100 0001 \le n \le 100\ 000

خروجی🔗

در تنها خط خروجی عدد مورد نظر مسئله را چاپ کنید.

مثال🔗

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

3
Plain text

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

3
Plain text

توضیح نمونه: در این نمونه به ترتیب از ۱ تا ۳ خروجی FF برابر با ۱ و ۲ و ۴ هست. بنابراین عددی که بیشترین مقدار FF را دارد ۳ است.

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

6
Plain text

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

5
Plain text

مسیر عجیب


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

یک گراف کامل nn راسی GG به شما داده می‌شود که mm تا از راس‌های آن، به صورت دلخواه با اعداد 11 تا mm شماره‌گذاری شده‌اند و nmn - m راس دیگر گراف، با یکدیگر یکسان هستند و همگی آن‌ها شماره 00 دارند.

همچنین ee یال از گراف GG حذف شده‌ است به طوری که شماره راس دو سر هر کدام از این یال‌ها بین 11 و mm می‌باشد.

شما باید تعداد مسیر‌های به طول n1n - 1 در گراف nn راسی GG (در واقع تعداد مسیرهای هامیلتونی) را خروجی دهید.

دو مسیر در گراف متفاوت درنظر گرفته می‌شوند اگر دنباله‌های راسی آن‌ها متفاوت باشند، برای مثال دو مسیر 1 0 2 31\ 0\ 2\ 3 و 1 0 2 31\ 0\ 2\ 3 با یکدیگر یکسان و دو مسیر 0 2 1 00\ 2\ 1\ 0 و 0 1 2 00\ 1\ 2\ 0 با یکدیگر متفاوت هستند.

از آنجایی که جواب ممکن است بزرگ باشد، جواب را به باقیمانده 109+710^9 + 7 چاپ کنید.

ورودی🔗

در خط اول ورودی به ترتیب سه عدد nn و mm و ee داده می‌شود.

در ee خط بعدی ورودی, در هر خط دو عدد uu و vv به شما داده می‌شود که بیانگر این است که یال بین دو راسی که با uu و vv شماره‌گذاری شده‌اند حذف شده‌است.

تضمین می‌شود که هر یال حداکثر یک‌بار حذف می‌شود. 1n1018 1 \le n \le 10^{18} 1m16 1 \le m \le 16 mn m \le n 0em(m1)2 0 \le e \le \frac{m(m - 1)}{2} 1u,vm 1 \le u, v \le m

خروجی🔗

در تنها خط خروجی، یک عدد خروجی دهید که بیانگر تعداد مسیرهای به طول n1n - 1 در گراف GG به باقیمانده 109+710^9 + 7 می‌باشد.

مثال🔗

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

4 3 2
1 2
1 3
Plain text

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

4
Plain text

مسیرهای هامیلتونی متفاوت عبارت‌اند از 1 0 3 2 و 1 0 2 3 و 2 3 0 1 و 3 2 0 1.

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

3 3 1
2 3
Plain text

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

2
Plain text

مسیرهای هامیلتونی متفاوت عبارت‌اند از 2 1 3 و 3 1 2.

گذراندن مربع


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

جدولی n×mn \times m داریم که برخی از خانه‌های آن مسدود شده‌اند. می‌دانیم که سطرهای این جدول از بالا به پایین با ۱ تا nn و ستون‌های این جدول از چپ به راست با ۱ تا mm شماره‌گذاری شده‌اند.

حال فرض کنید مربعی بر روی این جدول داریم و می‌خواهیم آن را به مکان دیگری از جدول انتقال دهیم. برای این کار در هر حرکت می‌توانیم مربع را یک واحد به سمت چپ یا راست یا بالا یا پایین انتقال دهیم، به‌طوری که از جدول خارج نشود و هیچ خانه مسدودی وارد آن نشود. مربع AA را از مربع BB دسترس‌پذیر می‌گوییم اگر بتوانیم با تعدادی حرکت بر روی AA، آن را به BB برسانیم.

حال در ورودی qq پرسش آمده است. در هر پرسش دو خانه متفاوت از جدول برای شما مشخص شده‌اند و شما باید بزرگترین kk را خروجی دهید که مربع k×kk \times k با گوشه پایین چپ خانه اول، از مربع k×kk \times k با گوشه پایین چپ خانه دوم، دسترس‌پذیر باشد و همچنین هیچ‌کدام از دو مربع مورد‌نظر دارای خانه مسدود نباشند. دقت کنید که kk ممکن است صفر نیز باشد.

ورودی🔗

در خط اول ورودی به شما سه عدد nn و mm و qq داده می‌شود.

در iiامین خط از nn خط بعدی، یک رشته به طول mm متشکل از . و‍ * آمده است که jjامین عنصر آن، نشان‌دهنده مسدود بودن یا نبودن خانه واقع در تقاطع سطر iiام و ستون jjام می‌باشد. اگر این عنصر * باشد، نشان‌دهنده مسدود بودن خانه مورد‌نظر و در غیر این صورت نشان‌دهنده خالی بودن آن می‌شود.

در iiامین خط از qq خط بعدی، چهار عدد xx و yy و x2x_2 و y2y_2 آمده‌ است که به ترتیب نشان‌دهنده شماره سطر خانه اول، شماره ستون خانه اول، شماره سطر خانه دوم و شماره ستون خانه دوم می‌باشد. تضمین می‌شود هیچ یک از دو خانه داده شده، مسدود نمی‌باشد. 1n,m2 0001 \le n, m \le 2\ 000 1q1 000 0001 \le q \le 1\ 000\ 000 1x,x2n1 \le x, x_2 \le n 1y,y2m1 \le y, y_2 \le m

خروجی🔗

در خط iiام خروجی، پاسخ پرسش iiام را چاپ کنید.

مثال🔗

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

4 4 3
....
....
....
....
2 3 3 2
1 1 1 2
4 1 4 2
Plain text

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

2
1
3
Plain text

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

6 7 3
.......
..****.
*......
***...*
.*.....
*.*.*.*
3 2 4 5
5 4 4 5
6 2 1 1
Plain text

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

1
2
0
Plain text

فاصله درختی


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

به شما یک گراف همبند nn راسی با n1n - 1 یال داده می‌شود. شما باید qq عملیات را روی این گراف انجام دهید.

هرکدام از این عملیات‌ها به یکی از دو صورت می‌باشد:

  • 1 v
  • 2 u v

عملیات اول به این صورت است که باید راس vv را از گراف باقیمانده حذف کنید. عملیات دوم نیز به این صورت است که باید یال بین دو راس uu و vv را از گراف باقیمانده حذف کنید. همچنین پس از اعمال هر عملیات باید مجموع فواصل هر دو راسی که درون یک مولفه هستند را خروجی دهید.

ورودی🔗

در خط اول ورودی به شما دو عدد nn و qq داده می‌شود که به ترتیب بیانگر تعداد راس‌های گراف و تعداد عملیات‌ها می‌باشند.

در n1n - 1 خط بعدی، در هر خط دو عدد uu و vv داده می‌شود که بیانگر این است که بین راس‌های uu و vv یک یال وجود دارد.

در qq خط بعدی، در هر خط به شما یک عملیات داده می‌شود که یا از نوع اول می‌باشد یا از نوع دوم می‌باشد.

تضمین می‌شود گراف ورودی همبند است و همچنین در هنگام عملیات های نوع اول و دوم، به ترتیب راس و یال مورد نظر در گراف موجود است. 1n500 000 1 \le n \le 500\ 000 1q2n1 1 \le q \le 2n - 1 1u,vn 1 \le u, v \le n uv u \neq v

خروجی🔗

خروجی شامل qq خط است که خط iiام برابر با مجموع فواصل هر دوراسی که درون یک مولفه هستند، پس از اعمال عملیات iiام می‌باشد.

مثال🔗

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

4 1
1 2
2 3
3 4
2 1 2
Plain text

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

4
Plain text

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

5 2
1 2
2 3
3 4
3 5
2 2 3
1 3
Plain text

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

5
1
Plain text