Jasio dostał na urodziny nowy zestaw
klocków. Na każdym z nich napisany jest pewien ciąg nawiasów
otwierających (
lub zamykających )
. Jasio
zastanawia się, czy jest w stanie ułożyć wszystkie klocki w pewnej
kolejności obok siebie w taki sposób, żeby powstały ciąg nawiasów był
poprawny?
Poprawny ciąg nawiasowań to taki, który można uzyskać nawiasując
jakieś działanie matematyczne. Przykładowo, ciąg (())()
jest poprawnym nawiasowaniem, natomiast (()
, )
lub )(
nie są poprawnymi nawiasowaniami.
Formalnie, napis S
składający się z nawiasów (
oraz )
jest
poprawnym nawiasowaniem, gdy
- S jest pusty,
- S jest postaci
(A)
, gdzie A jest poprawnym nawiasowaniem, - S jest postaci
AB
, gdzie A oraz B są poprawnymi nawiasowaniami.
Wejście
W pierwszym wierszu wejścia znajduje się jednak liczba naturalna N oznaczająca liczbę klocków z zestawu Jasia. W następnych N wierszach znajduje się opis napisów na każdym z klocku, i-ty wiersz zawiera ciąg nawiasów Si.
Wyjście
W pierwszym i jedynym wierszu wyjścia należy wypisać jedno słowo,
TAK
, jeżeli klocki da się poukładać tak, żeby utworzyły
poprawne nawiasowanie, lub NIE
w przeciwnym wypadku.
Ograniczenia
1 ≤ N ≤ 1 000 000, suma długości Si nie przekracza 1 000 000.
Podzadania
Podzadanie | Warunki | Punkty |
---|---|---|
1 | Długość każdego napisu Si to dokładnie 1. | 13 |
2 | Suma długości napisów Si nie przekracza 100, N = 10 | 23 |
3 | Każdy z napisów Si jest poprawnym nawiasowaniem. | 9 |
4 | Każdy z napisów Si ma tyle samo
znaków ( co ) . |
27 |
5 | Brak dodatkowych ograniczeń. | 28 |
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Jeżeli Jasio ustawi klocki w kolejności
drugi i pierwszy, to powstanie napis |
Wejście | Wyjście | Wyjaśnienie |
|
|
Jedyne możliwe do uzyskania napisy to
|
Jasio uwielbia prostokąty. Ostatnio na urodziny dostał od mamy zestaw prostokątów, które…
A z resztą, pal licho historyjkę! To zadanie jest tak trudne, że i tak nie uda Ci się go rozwiązać, więc od razu przejdźmy do sedna. Dane jest N zaznaczonych punktów na płaszczyźnie o współrzędnych całkowitoliczbowych. Możesz wykonać następującą operację: wybierz cztery liczby całkowite x1, y1, x2 oraz y2 takie, że dokładnie trzy spośród czterech punktów (x1,y1), (x1,y2), (x2,y1), (x2,y2) są zaznaczone i zaznacz również czwarty punkt.
Twoim zadaniem jest odpowiedzieć na pytanie, ile maksymalnie razy można wykonać tę operację?
Wejście
W pierwszym wierszu wejścia dana jest jedna liczba całkowita N oznaczająca liczbę zaznaczonych punktów na płaszczyźnie. W następnych N wierszach następuje opis kolejnych punktów, każdy z nich składa się z dwóch nieujemnych liczb całkowitych x oraz y, oznaczających, że punkt (x,y) jest zaznaczony.
Wyjście
Należy wypisać jedną liczbę: maksymalną liczbę operacji, jaką da się wykonać.
Ograniczenia
We wszystkich testach zachodzą warunki 1 ≤ N ≤ 1 000 000, 1 ≤ x, y ≤ 109.
Podzadanie | Warunki | Punkty |
---|---|---|
1 | 1 ≤ x, y ≤ 1 000 | 25 |
2 | N ≤ 1 000 | 25 |
3 | 1 ≤ x, y ≤ 1 000 000 | 30 |
4 | Brak dodatkowych ograniczeń. | 20 |
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Największy fizyk Bitocji, Bajtocjusz
Maksimus, dokonał przełomowego odkrycia dwóch, wcześniej nieznanych
cząsteczek: zerum i jedynkum. Cząsteczki zachowują się w zaskakujący
sposób: jeżeli zerum znajduje się blisko jedynkum, to Bitocjusz może
poruszyć te cząsteczki tak, aby zbliżyły się do siebie i
anihilowały (innymi słowy, przestają istnieć i zupełnie znikają),
pozostawiając po sobie dziurę, ściągającą pozostałe cząsteczki.
Przykładowo, jeżeli Bajtocjusz ustawi obok siebie cząsteczki zerum i
jedynkum w następujący sposób 0010011
(gdzie 0
reprezentuje cząsteczkę zerum, a 1
cząsteczkę jedynkum)
oraz poruszy drugą i trzecią cząsteczkę, to te anihilują się i ciąg
cząsteczek zmieni się w 00011
. Bitocjusz mógłby teraz
powtórzyć tę procedurę, aż żadne dwie cząsteczki zerum i jedynkum nie
będą znajdowały się obok siebie.
Bitocjusz jest bardzo zajętym fizykiem, dlatego poprosił Cię o pomoc. Fizyk ustawił w ciąg kolejne cząsteczki i zastanawia się, ile maksymalnie razy może poruszyć pewną parę sąsiadujących zerum i jedynkum? Pomóż mu i napisz program, który rozstrzyga ten problem.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N oznaczająca liczbę cząsteczek. W
następnym wierszu znajduje się ciąg N znaków 0
lub
1
, reprezentujących ciąg cząsteczek ustawiony przez
Bitocjusza.
Wyjście
W jednym wierszu wyjścia należy wypisać jedną liczbę całkowitą, oznaczającą maksymalną liczbę razy, jaką Bitocjusz może dokonać anihilacji pewnych dwóch sąsiadujących cząsteczek.
Ograniczenia
1 ≤ N ≤ 1 000 000.
Podzadania
Podzadanie | Warunki | Punkty |
---|---|---|
1 | N ≤ 3 000. | 26 |
2 | Wszystkie zera znajdują się na lewo od wszystkich jedynek. | 18 |
5 | Brak dodatkowych ograniczeń. | 56 |
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Istnieje wiele możliwych kolejności
anihilacji, jednakże w maksymalna liczba anihilacji, jaką można dokonać
to dwie, przykładowo wybierając pierwsze |
Wejście | Wyjście | |
|
|