OpenKattis
POwarmup23 svår: svår DP

Start

2022-11-10 16:00 CET

POwarmup23 svår: svår DP

End

2022-11-17 16:00 CET
The end is near!
Contest is over.
Not yet started.
Contest is starting in -772 days 12:13:02

Time elapsed

168:00:00

Time remaining

0:00:00

Problem A
Pokemonturnering

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 $100$ kronor var, och det kommer totalt sett att spelas $M$ 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 $1$.

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!

Indata

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

Sedan följer $M$ rader med matcherna på Simones lista. Varje match är en rad med två heltal $1 \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.

Utdata

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 $6$ decimalers nogrannhet.

Förklaring av exempel 1

Simone spelar inte någon match, så hon kommer bara ha sina ursprungliga 100 kronor i slutet.

Förklaring av exempel 3

En möjlig ordning är att spela match 3, sedan match 2 och sist match 1.

Efter första matchen kommer spelarna ha (150, 100, 50).

Efter andra matchen kommer spelarna ha (150, 125, 25).

Efter tredje matchen kommer spelarna ha (212.5, 62.5, 25).

Poängsättning

Din lösning kommer att testas på en mängd testfallsgrupper. För att få poäng för en grupp så måste du klara alla testfall i gruppen.

Grupp

Poängvärde

Gränser

1

20

$N, M \le 8$

2

40

$N, M \le 1\, 000$, och varje spelare förlorar högst en match

3

40

$1 \le N \le 100\, 000$, $0 \le M \le 200\, 000$

Sample Input 1 Sample Output 1
4 3
2 3
2 4
3 4
100
Sample Input 2 Sample Output 2
5 4
3 4
2 3
1 3
4 5
187.5
Sample Input 3 Sample Output 3
3 3
1 2
2 3
1 3
212.5