Logo
(追記) (追記ここまで)

26829번 - Klubowicze 2 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
20 초 (추가 시간 없음) 1024 MB129888.889%

문제

Znów odwiedzamy Bajtocki Klub Dyskusyjny. Przypomnijmy, że posiada on 2n członków, z których każdy zadeklarował, jakie ma poglądy na n fundamentalnych pytań. Konkretne sformułowanie pytań nie jest istotne; wystarczy wiedzieć, że są to pytania, na które można udzielić jednej z dwóch odpowiedzi (np. „kawa czy herbata?”). Poglądy danej osoby możemy kodować za pomocą ciągu bitów, który interpretowany w systemie binarnym da liczbę całkowitą z przedziału od 0 do 2n −1. Ponadto w klubie nie ma dwóch osób o jednakowych poglądach.

Dzisiaj odbywa się kolejne spotkanie klubu, na którym pojawiło się m klubowiczów i każdy zajął już wybrane przez siebie miejsce przy tradycyjnym okrągłym stole. Nadszedł czas, aby omówić Bardzo Ważny Temat, na który wszyscy czekali. Klubowicze chcieliby się dobrze przygotować do dyskusji, więc postanowili podzielić się na dwa zespoły i wstępnie omówić temat w tych zespołach. Żeby nie robić zamieszania, każdy zespół powinien składać się z klubowiczów zajmujących kolejne miejsca przy stole. Ponadto ze względu na rzeczowość dyskusji chcemy, aby w każdym zespole był pełny przekrój poglądów. Innymi słowy, dla każdego fundamentalnego pytania i możliwej na nie odpowiedzi, jeśli w pierwszym zespole istnieje osoba mająca taki pogląd, to w drugim zespole też musi istnieć taka osoba.

Napisz program, który obliczy, na ile sposobów można dokonać podziału klubowiczów na zespoły.

입력

W pierwszym wierszu standardowego wejścia znajdują się dwie liczby całkowite n i m (n ≥ 2, m ≥ 3) oznaczające odpowiednio liczbę fundamentalnych pytań oraz liczbę klubowiczów na spotkaniu. W drugim wierszu znajduje się ciąg m parami różnych liczb z przedziału od 0 do 2n − 1, opisujący poglądy kolejnych osób przy okrągłym stole.

출력

Na standardowe wyjście należy wypisać jedną liczbę całkowitą oznaczającą liczbę sposobów podziału klubowiczów na dwa zespoły spełniające warunki zadania.

제한

  • n ≤ 30
  • m ≤ min(2n, 2 000 000)

예제 입력 1

4 5
1 10 0 11 3

예제 출력 1

2

Wyjaśnienie przykładu: Są dwa poprawne podziały: 1 10 | 0 11 3 oraz 3 1 10 | 0 11.

힌트

출처

Olympiad > Polish Olympiad in Informatics > POI 2018/2019 > Stage 1 1번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /