Time limit: 1.5s
Memory limit: 64MB
Input:
Output:
După ce FlaviuS a aflat într-un mod misterios că este ambidextru, acesta a definit o barcă de mărime ca fiind un șir de caractere care arată astfel:
De exemplu, o barcă de mărime arată așa: \\\___///
(_
apare de ori). FlaviuS a găsit pe lângă calitatea sa și un șir de caractere, format doar din caracterele \
, _
și /
. El își pune întrebări de forma (, ): Care este mărimea maximă a unei bărci care este un subșir al subsecvenței .
Un subșir se obține din alt șir prin ștergea elementelor și păstrarea ordinei acestora. De exemplu, \_
este un subșir al șirului \/_/
, dar _\
nu este un subșir al șirului \/_/
.
Date de intrare
Pe prima linie se găsesc două numere, și , reprezentând lungimea șirului, și numărul de întrebari pe care și le pune FlaviuS. Pe a doua linie se află șirul . Următoarele linii conțin câte două numere și .
Date de ieșire
Pe linia , se va afla un singur număr , mărimea maximă a unei bărci.
Restricții și precizări
- pentru fiecare întrebare
- Dacă la o interogare nu există nicio barcă în subsecvența aleasă, se va afișa .
# | Punctaj | Restricții |
---|---|---|
0 | 0 | Exemplul |
1 | 9 | |
2 | 22 | |
3 | 33 | |
4 | 36 | Fără alte restricții |
Exemplu
stdin
17 6
\_/\/_\___/_/\/_/
1 2
1 3
1 17
3 10
2 16
5 10
stdout
0
1
3
0
2
0
Explicație
La prima interogare, subsecvența este \_
, așadar nu este nicio barcă.
La a doua interogare, subsecvența este \_/
, așadar există o barcă de lungime .
La a treia interogare, subsecvența este tot șirul. Există o barcă de lungime formată din caracterele de pe pozițiile . O barcă de lungime arată astfel: \\\___///