ultima problemă
grupă: micăsursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
pvizTimp maxim de execuţie / test:
0.1 s
Memorie totala disponibilă / stivă:
64 MB / 1 MB
Fie
N
un număr natural nenul şi
P
o permutare de lungime
N
a numerelor din multimea
{1, 2, ..., N}
. Definim un element vizibil în permutarea
P
ca fiind un număr
Pi
care are proprietatea că
Pj < Pi , 1 ≤ j < i
sau
i=1
.
Cerinţă
Determinaţi numărul
X
de permutări de lungime
N
care au ca elemente vizibile exact
M
elemente date.
Date de intrare
Fişierul de intrare
pviz.in
conţine pe prima linie două numere naturale
N
şi
M
, cu semnificaţia din enunţ, separate printr-un spaţiu. A doua linie a fişierului conţine
M
numere naturale distincte, ordonate crescător, separate prin câte un spaţiu, reprezentând elementele vizibile.
Date de ieşire
Fişierul de ieşire
pviz.out
va conţine o singură linie pe care va fi scris un număr natural reprezentând restul împărţirii numărului
X
la
10007
.
Restricţii
• 1 ≤ N ≤ 2000
• 1 ≤ M ≤ N
• Elementele vizibile sunt scrise în fişierul de intrare în ordine crescătoare.
• Pentru 10% din teste
N ≤ 10
• Pentru 20% din teste
N ≤ 14
• Pentru 60% din teste
N ≤ 375
Exemple
pviz.in
pviz.out
Explicaţii 4 2
2 4
3
Sunt 3 permutări, de lungime 4, care au pe 2 şi 4 ca elemente vizibile:
2 4 3 1
2 4 1 3
2 1 4 3
Permutarea 2 3 4 1
nu corespunde cerinţei deoarece are ca elemente vizibile atât pe 2 şi 4, cât şi pe 3.
Articole recomandate
Probleme recomandate
De la ONI 2008 : ab2 , iepuras , palind , auto , div , teatru , pm , submat , reteta2 , rezervatie , creioane , melci , mere2 , felinare , joc3 , 2numere , fi , tablou , borcane , mexc , tcast , dep , dist1 , stiva , banda , pavare , poarta , aranjare , bile4 , subgeom , albinuta1 , curent , atac2 , virus De acelaşi autor : nrbun2 , nrbun , siruri , perspic , ture , toys , secv , arb , sir1 , mexc Despre programare dinamică : vedete , fbr , tgv , zeratul , rv , comun , retea , circuit , sumdif , copaci , drum , text , palind , joc , vikingi , rafturi , balaur , plimbare , party , pc , pioni , seif , iepuri , numere3 , perm , ture , bilete , prop , ro , reduceri , cuburi , invest , cutie2 , stalpi , nr2 , judete , strict , auto2 , tree , jobs , leaves , pstring , program , datorii , senzori , farfurii , joc1 , barbie , ambigram , rlcs , cub1 , bio , chimie1 , otilia , pasune , remi , sir23 , tren1 , joc5 , pachete , echipe , comb , agitatie , ivv , peste , pitici , pipe , shgraf , tabara1 , stop , randuri , zidar , log , sant , produs , subsir , cover , bcast , emax , dist , mesaj1 , imax , avere , asmax , raft , suma2 , joc12 , fni , nr4 , join , transport , masina3 , lsort , microvirus , fat , cafea , echipe1 , anticip , bsir , diamant , petrom , evantai , spion , acolor , evo , bombo , lacusta , lant , team , pitici1 , numere8 , dep , stiva , subgeom , tir1 , cabane , piramida1 , mosia , cuvinte1 , gaina , materom , sortari , turnuri , trans , politie , codul , dansatori , nkbiti , kperms , treegame , siruri2 , 123 , jucarii , bradut , joc15 , expozitie , text3 , ic , echilibru , distsir , kmax , stalpi1 , gaz , triunghi2 , v2d , cuiburi , mine , orientare , activ , secvbiti , kcons , pokemon , ubergraf , left , acerc , autostrazi , kdist , select , cazare , fluviu , telecomanda , parcela , pion , subs , suma4 , sirmax , bdotcom , viena , sablon2 , telecab , ikebana , radare , hacker , obstacole , robotel , centrala , verigi , cds , wg , minusk , radioactiv , enigma , jb , efect , maxviz , ripstick , progresii , maxtri , combcuv , blis , subsiruri , mijloc , probleme , unuzero , palindrom1 , minerale , speed , zmax , spider , cntgcd , interclasare , bus , pariuri , riglef , fractii2 , fall , arbsum , conuri , arbvalmax , procente , metrou 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 , 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 , permtr , relatii , 2sah , matcnt , magic7 , nmult , roua Despre recurenţă : nrbun2 , nrbun , grupe , palind , siruri , vecini , net , pioni , sir2 , perm , red , sume3 , pavaj , div3 , descfib , robot1 , soldati1 , expresii , agitatie , aparitii , apel , randuri , zidar , log , maxq , cover , dist , munte1 , sir1 , vizibil , csir , puncte2 , aranjari , numere5 , anticip , bsir , evantai , sg1 , zumzi , lant , perfect , cifru2 , numere8 , poarta , poli , desert , echitabil , patrate6 , kperms , jump , petrecere , rege , triunghi3 , sir9 , arbore1 , fibgcd , cds , wg , module , nr0 , cover1 , culori1 , flori2 , cntgcd , 2sah , matcnt , nmult