.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » permtr

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
 .campion
permtr


Timp maxim de execuţie/test:
1.5 secunde
Memorie totală disponibilă/stivă:
32 MB/2 MB

Se consideră un număr natural k si n = 1+2+...+k = k*(k+1) div 2. Luând o permutare oarecare p=(p1,p2,...pn) a multimii {1,2,...,n}, acestea se asază pe k linii astfel: pe prima linie se pune p1, pe a doua linie p2 si p3, pe a treia linie p4,p5,p6, ..., pe linia k se asază ultimele k numere din permutare. De exemplu, pentru k=3 (deci n=6) si permutarea (2,4,3,1,6,5) asezarea pe 3 linii este:
2
4 3
1 6 5

După asezarea numerelor se determină valorile m1,m2,...,mk, unde, pentru i=1..k, unde mi memorează valoarea maximă de pe linia i. În exemplul de mai sus m1=2, m2=4, m3=6.

Cerinţă

Pentru un număr natural k dat, să se determine numărul permutărilor multimii {1,2,…,n} care au proprietatea că m1<m2<…<mk. Pentru că acest număr poate fi foarte mare, se va calcula modulo 1000000007.

Date de intrare

Fişierul de intrare permtr.in conţine pe prima linie numărul natural k.

Date de ieşire

Fişierul de ieşire permtr.out va conţine pe prima linie un singur număr natural reprezentând numărul permutărilor care au proprietatea cerută, modulo 1000000007.

Restricţii

  • 2 <= k <= 5000
  • Pentru 50% din teste, k <= 50

Exemplu

permtr.in permtr.out Explicaţii
2 4
k=2, deci n=3. Cele 4 permutări ale multimii {1,2,3} sunt:
1,2,3
1,3,2
2,1,3
2,3,1
prof. Dan Pracsiu
Liceul "Stefan Procopiu" Vaslui
dpracsiu@yahoo.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la XOR 2015: sprime, sir2dif, punctul, aperm, ecp, arbsum, robotzi, unudoi
De acelaşi autor: cai, rebus, harta, comun, axa, sir, ocean14, reduceri, div3, patrate6, vot, reziduu, accesibil, predecesor, permutari, scanduri, ordonare, xor1, paltrei, triunghi1, 123, traseu1, parbit, petrecere, secvbiti, subm, triunghi3, cmmdcsecv, drumuri1, fillmat, secvb, siruri3, acces, segmente, echilibru1, broscute, ksecv, paisprezece, proddiv, perechi2, expeval, maxtri, combcuv, dfs, qtri, blis, maxbin, probleme, divider, eliminare, minm, genab, grafxy, matd3, azeval, matrixdel, speed, maxp, split, binremove, sminus, subsets, tcif, sprime, sir2dif, ecp, arbsum, robotzi, unudoi, matcnt, ssdj, dominant
Despre combinatorică: manevre, carti, bonuri, test, cub, nspecial, circuit, numere, cs, pluricex, parent, gray, siruri, anagrame, party, net, scaune, sir, monede, aztec, nrcuv2, perm, race, hanoig, red, grup, hperm, depou, grazing, pm, reteta2, playlist, young, pizza1, albine, caramele, teatru1, tub, robot1, sir23, soldati1, concurs1, comb, expresii, arbnr, cod1, munte, shgraf, desc, lex, munte1, maxperm, role, avere, vizibil, prime1, hexa, patrat, carti2, puncte2, pact, aranjari, numere5, borg, acolor, sg1, perfect, cifru2, bile4, pviz, culmi1, piramida1, trapez, frunze, sir7, logic, coduri, jetoane, kperms, tablite, secvpar, lego, permutari, binperm, multiplu1, operatii, fotbal, kbiti, jucarii, bradut, expozitie, parbit, kmax, petrecere, tango, rege, cd1, cifru3, kcons, bubblesort, hawaii, randomizare, kdist, reuniune, echipa, ghinion, cavaleri, camera616, covor, subm, grupuri, pavari, asfalt, adunscad, rotund, sport2, arbore1, lant1, module, nrperm, oneton, nrpomi, cover1, nrpal, probleme, optim, poly, vot1, sudoku1, flori2, xnumere, showroom, cntgcd, subsets, nkd, nrgraf, spion1, puteri, stiva1, relatii, 2sah, matcnt, magic7, nmult, roua
surse trimise | ajutor