Universal Cup Judging System

Universal Cup

حد الوقت: 4.0 s حد الذاكرة: 1024 MB مجموع النقاط: 100 الصعوبة: [عرض] قابلة للهجوم ✓
الإحصائيات

Multi-Heads Cup, немесе қысқаша MHC — бұл көп-көп басы бар қатысушыларға арналған дүниежүзілік бағдарламалау сайысы. 2023 жылы осы жарыстың бас төрешісі Little Cyan Fish жақшалардың көптеген түрлерін пайдаланып, күрделі аутентификация есебін шешті.

Бұл Little Cyan Fish-тің көп-көп басы бар қатысушыларды алғаш рет көруі еді. Ал бұл жолы Little Cyan Fish өзінің көп-көп басы бар ең жақын досына жақшалар туралы тағы бір есеп алып келді. Little Cyan Fish-тің қолында $n$ түрлі жақша бар, және жақшаның әрбір түрі сол жақ (ашылатын) және оң жақ (жабылатын) жақшаларға бөлінеді. Ыңғайлы болу үшін сол жақ жақшаның $i$-ші түрін белгілеу үшін $L^i$, ал оң жақ жақшаның $i$-ші түрін белгілеу үшін $R^i$ қолданамыз.

«Ей, ұмытпа, — деп ойлады Little Cyan Fish, — мен саған бұрын дұрыс жақша тізбегі деген не екенін таныстырғанмын!» Сіздің дұрыс жақша тізбегі ұғымын нақты түсінгеніңізге көз жеткізу үшін Little Cyan Fish дұрыс жақша тізбегінің келесі формалды анықтамасын дайындады:

  • $\varepsilon$ (бос жол) — дұрыс жақша тізбегі.
  • Егер $A$ дұрыс жақша тізбегі болса, онда $(A)$ да дұрыс жақша тізбегі болады.
  • Егер $A$ және $B$ дұрыс жақша тізбектері болса, онда $AB$ де дұрыс жақша тізбегі болады.

Мысалы, «()», «()()» және «(())» — дұрыс жақша тізбектері, бірақ «)(», «(» және «))» олай емес.

problem_18006_c94506411d8fcb12ebc396edd1eb34bd.png

Енді Little Cyan Fish сізге жақшаның $n$ түрін қамтитын ұзындығы $n$ болатын $S$ жақша тізбегін береді. Өкінішке орай, Little Cyan Fish кейбір орындардағы жақшалардың түрлерін ұмытып қалды, сондай-ақ сол орындардағы жақшалардың бағыттарын да ұмытып қалды. Бұл орындар туралы естеліктер бұлдырап, оларды Little Cyan Fish ? таңбасымен белгіледі.

Little Cyan Fish-ті барлық $1 \le l \le r \le n$ үшін $S[l \dots r]$ ішкі жолдарына сәйкес келетін қанша $(l, r)$ жұбы бар екені қатты қызықтырады, мұндағы ? таңбаларын белгілі бір бағыттағы белгілі бір жақша түрімен толтыру тәсілі табылып, әрбір $1 \le i \le n$ үшін келесі шарт орындалуы тиіс:

  • $i$ түріндегі барлық жақшаларды (яғни барлық $L^i$ мен $R^i$) бөліп алғанда, нәтижесінде алынған жақша тізбегі (тек $i$-ші түрдегі жақшалардан тұратын) дұрыс жақша тізбегі болады.

Мысалы, егер жақшаның бірінші түрін белгілеу үшін «()», ал екінші түрін белгілеу үшін «[]» қолдансақ, онда ([?) жақша жолы жоғарыдағы шартты қанағаттандырады, өйткені ? таңбасын ] таңбасымен алмастыра аламыз. (?)] жолы да жоғарыдағы шартты қанағаттандырады, өйткені ? таңбасын [ таңбасымен алмастыра аламыз.

Little Cyan Fish сізден барлық жарамды $(l, r)$ жұптарының санын есептеуді сұрайды.

Кіріс деректер

Бірнеше тест жиыны берілген. Кіріс деректердің бірінші жолында тест жиындарының санын білдіретін бір бүтін сан $T$ ($1 \le T$) берілген.

Әрбір тест жиыны үшін кіріс деректердің бірінші жолында жақша жолының ұзындығын білдіретін бүтін сан $n$ ($1 \le n \le 2 \times 10^5$) берілген.

Келесі жолда $n$ бүтін сан $x_1, x_2, \dots, x_n$ ($-n \le x_i \le n$) берілген. Бұл $n$ бүтін сан жақша жолы туралы ақпаратты сипаттайды, мұндағы:

  • Егер $x_i > 0$ болса, онда $i$-ші орын сол жақ жақшаның $x_i$-ші түрін (яғни $L^{x_i}$) білдіреді.
  • Егер $x_i < 0$ болса, онда $i$-ші орын оң жақ жақшаның $-x_i$-ші түрін (яғни $R^{-x_i}$) білдіреді.
  • Егер $x_i = 0$ болса, бұл Little Cyan Fish осы орындағы ақпаратты ұмытып қалғанын (яғни ?) білдіреді.

Барлық тест жиындары бойынша $n$ қосындысы $2 \times 10^5$-нен аспайтынына кепілдік беріледі.

Шығыс деректер

Әрбір тест жиыны үшін жауапты білдіретін бір бүтін саннан тұратын бір жол шығарыңыз.

Мысал

Кіріс 1

4
4
1 2 -1 -2
4
1 0 -2 0
6
1 2 3 -3 -2 -1
8
1 0 0 3 0 0 0 -2

Шығыс 1

1
3
3
14

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.