Pokemonturnering | 프로그래밍의 벗 PivotOJ
PivotOJ

Pokemonturnering

시간 제한: 4000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2015 — finalBOJ 26896

문제

Pokémon-mästaren Simone har samlat ihop sina vänner till en turnering. En Pokémon-match spelas mellan exakt två spelare och slutar aldrig oavgjort. Det är även allmänt känt att vinnaren av en Pokémon-match får exakt hälften av motståndarens pengar. I början har alla 100100 kronor var, och det kommer totalt sett att spelas MM matcher.

Simone har spionerat på alla sina vänner, och vet exakt hur bra dessa är. Hon har rangordnat alla spelare i en lång lista, och vet att om två personer möter varandra så vinner alltid den som är överst på listan. Alla spelare är numrerade efter sin position på listan. Simone, som självfallet är den bästa spelaren, har därför nummer 11.

Hon har redan publicerat en lista över vilka matcher som ska spelas, men ordningen är ännu inte bestämd. Nu undrar hon hur mycket pengar hon som mest kan ha i slutet om hon får välja i vilken ordning matcherna ska spelas. Skriv ett program som beräknar detta!

입력

Den första raden består av två heltal: antalet spelare (inklusive Simone), NN, och antalet matcher som ska spelas, MM.

Sedan följer MM rader med matcherna på Simones lista. Varje match är en rad med två heltal 1a<bN1 \le a < b \le N, numren på de två spelarna som ska mötas.

Inga två spelare kommer möta varandra mer än en gång.

출력

Du ska skriva ut ett decimaltal - antalet kronor Simone kan ha i slutet av tävlingen om hon ordnar matcherna optimalt. Svaret måste anges med minst 66 decimalers nogrannhet.

예제

예제 1

입력
4 3
2 3
2 4
3 4
출력
100

예제 2

입력
5 4
3 4
2 3
1 3
4 5
출력
187.5

예제 3

입력
3 3
1 2
2 3
1 3
출력
212.5
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.