expected

Time limit: 0.05s Memory limit: 128MB Input: expected.in Output: expected.out

Alex își face bagajul și a ajuns la împachetarea șosetelor. Șosetele lui Alex au doar două dimensiuni, mare și mică. Șosetele mici le putem considera ca având dimensiunea sizeSmallsizeSmall, iar cele mari le putem considera ca având dimensiunea sizeBigsizeBig.

Sertarul lui conține NN șosete în total. Fiecare șosetă are o anumită culoare coloricolor_i și o anumită dimensiune(mare sau mică) sizeisize_i. Alex a decis că, pentru drum, el nu are nevoie decât de KK șosete dintre cele NN. Așa ca el alege, pe rând, la întâmplare, câte o șosetă din sertar și o pune în bagaj.

Dacă în sertar mai sunt pp șosete cu dimensiunile s1,s2,,sps_1, s_2, \dots, s_p (fiecare dimensiune egală fie cu sizeSmallsizeSmall fie cu sizeBigsizeBig), atunci probabilitatea de a alege șoseta ii este egală cu:

sis1+s2++sp \displaystyle \frac{s_i}{s_1 + s_2 + \dots + s_p}

Cerință

Alex ar vrea să fie asortat, așa că se gândește care este probabilitatea ca după ce își face bagajul, cel puțin două șosete luate să aibă aceeași culoare (chiar dacă ar avea dimensiuni diferite).

Date de intrare

Fișierul de intrare expected.in conține pe prima linie numărul întreg NN, câte șosete sunt în sertar, și numărul întreg KK, câte șosete își alege Alex.
Pe următoarea linie se vor afla doi întregi sizeSmallsizeSmall și sizeBigsizeBig, dimensiunile unei șosete mici, respectiv ale unei șosete mari.
Apoi urmează NN linii, pe fiecare linie ii se va afla perechea formată din coloricolor_i și sizeisize_i, culoarea șosetei ii ( un număr întreg intre 11 și NN) și dimensiunea șosetei ii (fie 00, reprezentând că șoseta este mică și că are dimensiunea sizeSmallsizeSmall, fie 11 pentru o șosetă mare cu dimensiunea sizeBigsizeBig).

Date de ieșire

Fișierul de ieșire expected.out va conține un singur număr real, probabilitatea pe care o caută Alex de a avea cel puțin două șosete de aceeași culoare.

Restricții și precizări

  • 1N<2001 \leq N < 200
  • 1sizeSmall,sizeBig2 0001 \leq sizeSmall, sizeBig \leq 2 \ 000
  • Pentru un test se va acorda 100%100\% din punctaj dacă diferența absolută dintre răspunsul vostru și răspunsul corect este cel mult 0.000010.00001 (105)(10^{-5}).
  • Dacă pentru un test diferența absolută dintre răspunsul vostru și răspunsul corect este cuprinsă intre 0.010.01 (102)(10^{-2}) și 0.000010.00001 (105)(10^{-5}), se va acorda 40%40\% din punctaj.
  • Se recomandă folosirea tipului de date long double pentru a stoca numerele reale.
  • Pe sistemul pe care se va face evaluarea, pe cât și pe sistemul concurenților, tipul de date long double ocupă 1212 octeti (bytes)
  • Pentru funcțiile scanf, printf o variabilă de tip long double se va formata folosind %Lf

Exemplu

expected.in

4 2
1 2
1 1
2 0
1 1
2 1

expected.out

0.3333333333333

Log in or sign up to be able to send submissions!