Opieka

시간 제한5초메모리 제한2048 MB

요약
길이 L의 시간축에서 각자 다른 업무 구간이 주어질 때, 아기가 항상 돌봄을 받도록 하면서 모든 사람이 똑같이 잘 수 있는 최대 수면 길이 T를 기약분수로 구한다.
난이도

어려움10점 중 8점

유형
이분 탐색, 그리디, 시뮬레이션, 정수론
정답자
아직 제출이 없습니다

문제

Opieka nad noworodkiem nie jest prostym zadaniem. Zawsze ktoś musi nad nim czuwać. Istnieją też przy tym inne obowiązki, a dodatkowo opiekunowie chcieliby czasem spać. . .

W wychowywanie małej Bajtolinki jest zaangażowanych nn osób. Rozpatrujemy odcinek czasu \[0,L)\[0, L) podzielony na LL jednostkowych fragmentów \[i,i+1)\[i, i + 1) i dla każdego z nich wiemy, kto jest w nim zajęty innymi obowiązkami. Jeśli osoba nie jest zajęta innymi obowiązkami, może czuwać przy dziecku lub spać.

Każda z nn osób w rozpatrywanym czasie położy się spać i obudzi się co najwyżej raz. A żeby było sprawiedliwie, chcemy rozplanować opiekę tak, żeby każdy spał dokładnie tyle samo czasu TT (gdzie TT jest nieujemną liczbą rzeczywistą). Inne obowiązki zajmują całe fragmenty \[i,i+1)\[i, i + 1), natomiast sen może zająć dowolny przedział \[a,a+T)\[a, a + T) dla nieujemnej liczby rzeczywistej aa spełniającej a+T≤La + T ≤ L.

Znajdź największe TT, dla którego można rozplanować sen wszystkich nn osób tak, aby dla każdego rzeczywistego x∈\[0,L)x ∈ \[0, L) istniała co najmniej jedna osoba, która może zająć się Bajtolinką w momencie xx (czyli która nie śpi i nie jest zajęta innym obowiązkiem). Da się udowodnić, że optymalne TT (jeśli istnieje) jest liczbą wymierną. Wypisz je w postaci ułamka nieskracalnego. Jeśli nie da się ułożyć planu, aby przez cały rozpatrywany okres ktoś zajmował się dzieckiem, wypisz −1-1.

입력

W pierwszym wierszu wejścia znajdują się dwie liczby całkowite nn, LL (1≤n≤181 ≤ n ≤ 18, 1≤L≤100,0001 ≤ L ≤ 100\\, 000), oznaczające odpowiednio liczbę osób zajmujących się Bajtolinką oraz długość rozpatrywanego przedziału czasu. W kolejnych nn wierszach znajdują się słowa długości LL składające się ze znaków X oraz . (kropka), opisujące inne obowiązki poszczególnych osób w kolejnych fragmentach czasu, gdzie ii-ty znak opisuje przedział \[i−1,i)\[i - 1, i).

  • Znak X oznacza, że osoba jest zajęta innymi obowiązkami.
  • Znak . oznacza, że osoba jest wolna – może spać albo zajmować się Bajtolinką.

출력

Jeśli nie da się ustalić planu, w jedynym wierszu wyjścia powinna znaleźć się liczba −1-1. W przeciwnym razie, w jedynym wierszu wyjścia powinna znaleźć się jedna liczba wymierna zapisana w nieskracalnej postaci x/yx/y (NWD(x,y)=1\text{NWD}(x, y) = 1 oraz y>0y > 0) – maksymalna możliwa długość snu każdej osoby, jaką można uzyskać przy optymalnym rozplanowaniu opieki nad Bajtolinką.

힌트

W pierwszym teście przykładowym, aby uzyskać wynik 43\frac{4}{3}, osoby muszą spać odpowiednio w przedziałach \[0,43)\[0, \frac{4}{3}), \[83,4)\[\frac{8}{3} , 4), \[43,83)\[\frac{4}{3}, \frac{8}{3}).

W drugim teście druga osoba jest cały czas zajęta innymi obowiązkami, więc nie ma czasu spać.

W trzecim teście w momencie x=π2≈1.57x = \frac{\pi}{2} ≈ 1.57, nikt nie może zająć się Bajtolinką.

예제3

  1. 예제 1

    입력
    3 6
    ..X.XX
    .X..X.
    X..X..
    
    예상 출력
    4/3
    
  2. 예제 2

    입력
    3 2
    ..
    XX
    ..
    
    예상 출력
    0/1
    
  3. 예제 3

    입력
    1 3
    .X.
    
    예상 출력
    -1