Automatizare

Time limit: 2.5s Memory limit: 256MB Input: Output:

What did you dream?
It's all right, we told you what to dream

Cerință

O permutare a numerelor 1,2,…,n1, 2, \ldots, n era sortată crescător. Cineva a scos un singur element și l-a reinserat pe altă poziție (de exemplu, 1 2 3 4 5 → 1 4 2 3 5). Asemenea incidente se întâmplă des, așa că vrei să automatizezi repararea. Problema este că orice element poate fi mutat oriunde și nu poți prezice ce se va întâmpla, așa că trebuie să iei în calcul toate posibilitățile. De aceea, dorești să aplici algoritmul.

Algoritmul

Un algoritm de lungime TT este o secvență de TT operații (i1,r1),(i2,r2),…,(iT,rT)(i_1, r_1), (i_2, r_2), \ldots, (i_T, r_T), unde ik∈{1,…,n−1}i_k \in \{1, \ldots, n-1\} este o poziție, iar rk∈{reușita˘,eșec}r_k \in \{\text{reușită}, \text{eșec}\}. Algoritmul se aplică unei permutări aa executând operațiile în ordine. Operația (ik,rk)(i_k, r_k) interschimbă elementele aika_{i_k} și aik+1a_{i_k+1} doar dacă rk=reușita˘r_k = \text{reușită} și aik>aik+1a_{i_k} > a_{i_k+1}; altfel nu face nimic.

Un algoritm este bun dacă, aplicat oricărei permutări obținute din permutarea sortată prin mutarea unui singur element, o sortează crescător. Același algoritm, cu aceleași poziții și aceleași reușite, trebuie să funcționeze pentru toate aceste permutări.

Algoritmul se generează aleator: fiecare poziție iki_k se alege uniform din {1,…,n−1}\{1, \ldots, n-1\}, iar fiecare rkr_k este „reușită” cu probabilitatea p=P100p = \frac{P}{100} și „eșec” cu probabilitatea 1−p1 - p. Toate aceste alegeri sunt independente.

Să se determine probabilitatea ca algoritmul generat să fie bun.

Date de intrare

Pe prima linie se găsesc trei numere întregi, nn, TT și PP.

Date de ieșire

Pe prima linie se va afișa un singur număr întreg, probabilitatea cerută modulo 998 244 353998 \ 244 \ 353.

Restricții și precizări

  • 2≤n≤1002 \leq n \leq 100;
  • 1≤T≤20 0001 \leq T \leq 20 \ 000;
  • 1≤P≤1001 \leq P \leq 100;
  • Se poate demonstra că probabilitatea cerută se poate scrie ca o fracție ireductibilă xy\frac{x}{y}, unde yy nu este divizibil cu 998 244 353998 \ 244 \ 353. Se cere valoarea x⋅y−1 mod 998 244 353x \cdot y^{-1} \bmod 998 \ 244 \ 353, unde y−1y^{-1} este inversul modular al lui yy.
  • Pentru 15 puncte, n≤4n \leq 4 și T≤8T \leq 8;
  • Pentru alte 35 de puncte, n≤30n \leq 30 și T≤1 000T \leq 1 \ 000.

Exemplul 1

stdin

3 4 100

stdout

499122177

Explicație

Toate operațiile reușesc, iar pozițiile formează unul dintre cei 24=162^4 = 16 algoritmi posibili, toți la fel de probabili. Exact 88 dintre ei sunt buni: de exemplu, (1,2,1,2)(1, 2, 1, 2) este bun, iar (1,1,2,2)(1, 1, 2, 2) nu este, deoarece nu sortează permutarea 2 3 1. Probabilitatea este 12\frac{1}{2}, iar 2−1 mod 998 244 353=499 122 1772^{-1} \bmod 998 \ 244 \ 353 = 499 \ 122 \ 177.

Exemplul 2

stdin

4 6 80

stdout

315856191

Explicație

Probabilitatea ca algoritmul să fie bun este aproximativ 0.03200386280.0320038628.

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