ultima problemă
grupă: micăsursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
avereTimp maxim de execuţie / test:
0.1 s
Memorie totala disponibilă / stivă:
3 MB / 1 MB
Italag a fost toată viaţa pasionat de speculaţii bursiere reuşind să adune o avere considerabilă. Fiind un tip original şi pasionat de matematică a scris un testament inedit. Testamentul conţine două numere naturale:
S
reprezentând averea ce trebuie împărţită moştenitorilor şi
N
reprezentând alegerea sa pentru împărţirea averii.
Italag decide să-şi împartă toată averea, iar sumele pe care le acordă moştenitorilor să fie în ordine strict descrescătoare.
De exemplu dacă averea ar fi
7
unităţi monetare, ar putea fi împărţită astfel:
4
(unităţi primului moştenitor)
3
(unităţi celui de-al doilea), sau
6
(unităţi primului moştenitor)
1
(unitate celui de-al doilea), sau
7
(doar primului moştenitor), sau
5
(unităţi primului moştenitor)
2
(unităţi celui de-al doilea), sau
4
(unităţi primului moştenitor)
2
(unităţi celui de-al doilea)
1
(unitate celui de-al treilea).
Văzând că îi este foarte greu să verifice dacă nu cumva a omis vreo variantă de împărţire, Italag le-a scris în ordine lexicografică. Pentru exemplul de mai sus:
4 2 1; 4 3; 5 2; 6 1; 7
.
A hotărât ca banii să fie distribuiţi conform celei de-a
N
-a posibilităţi din ordinea lexicografică.
Cerinţă
Scrieţi un program care pentru numerele
S, N
date să calculeze şi să afişeze numărul total de posibilităţi de împărţire a averii, precum şi modul în care se face această împărţire conform cu a
N
–a posibilitate din ordinea lexicografică.
Date de intrare
Fişierul de intrare
avere.in
conţine o singură linie pe care se află două numere naturale separate printr-un singur spaţiu:
– primul număr (
S
) reprezintă suma totală
– cel de-al doilea (
N
) reprezintă numărul de ordine al poziţiei căutate.
Date de ieşire
Fişierul de ieşire
avere.out
va conţine două linii:
– pe prima linie va fi afişat numărul total de modalităţi de împărţire a averii;
– pe cea de-a doua linie va fi afişată a
N
-a posibilitate de împărţire a lui
S
conform cerinţei în ordine lexicografică. Elementele sale vor fi separate prin câte un spaţiu.
Restricţii
1 < S < 701
0 < N <
numărul total de posibilităţi cu suma
S
Se acordă punctaj parţial pentru fiecare test:
5
puncte pentru determinarea corectă a numărului de posibilităţi de împărţire a lui
S
şi
5
puncte pentru determinarea corectă a posibilităţii
N
, din ordinea lexicografică.
Posibilităţile de împărţire a averii sunt numerotate începând cu
1
.
Fie
x = (x1, x2 …, xm)
şi
y = (y1, y2, …, yp)
două şiruri. Spunem că
x
precedă pe
y
din punct de vedere lexicografic, dacă există
k≥1
, astfel încât
xi=yi
, pentru orice
i=1, k-1
şi
xk<yk
.
Exemplu:
4 2 1
precedă secvenţa
4 3
deoarece (
4=4, 2<3
), iar
6 1
precedă
7
deoarece
6<7
.
Exemple
avere.in
avere.out
7 2
5
4 3
12 5
15
6 5 1
700 912345678912345678
962056220379782044
175 68 63 58 54 45 40 36 34 32 20 18 17 14 11 9 3 2 1
Articole recomandate
Probleme recomandate
De la ONI 2005 : baschet , ingerasi , numar1 , prieteni , robinson , aritma , cezar , cuburi2 , joc8 , bifo , joc9 , pal , romeo , seceta , antena , joc11 , paianjen , suma2 , vizibil , masina3 , csir , lsort , patrat , ziduri , anticip , bsir , evantai , galax , spion , texan De acelaşi autor : trains , pstring , joc4 , omizi , arbnr , acolor , bcolor , arbfind , albinuta1 , drumuri 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 , 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 , pviz , 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 backtracking : acop , bipal , magic2 , vagoane , friends , tricouri , festival , numar , pento , ro , jobs , onu2 , sir3 , cai1 , labirint , dans , ham , sudoku , caramele , linie , puncte , castel , excursia , joc7 , pattern , paianjen , medii , monkey , scara1 , numere8 , banda1 , spirala1 , cofetar , gradina , placa , smin , jucarii , immortal , concat , cubinvers , codif , izvor , avioane , jb , prisme , triburi1 , genab , dineu , antitero , ornament , virgule Despre matrice : vopsea , harta , opmat , sarpe , light , magic2 , tetris , origami , concurs , iepuras , tribile , criptmat , cutie , patrate , 3d , pajura , perspic , vecini2 , livada , matrice3 , kafka , erdos , grup , scor2 , reteta2 , rezervatie , scoici , tablou , game , stea , submatrix , cifru , jokes , oua , trecere , na , dotnet , renju , ghici , mere1 , agitatie , lacuri , sotron , desen1 , camion , ceas1 , fibo , parc , excursia , matricea , zidar , joc6 , log , concurs2 , cladiri , dist , centru , robinson , cuburi2 , joc8 , joc9 , romeo , adevar , soricel2 , joc11 , vizibil , sah1 , blockout , masina3 , lsort , anticip , matrice1 , evantai , spion , pereti , zumzi , roboti , placare , tabel , ocr , numere7 , lacusta , becuri , sir5 , flori , cartele , furnica , pavare , poarta , rj , peri , poligon2 , sablon1 , gradina , matrice4 , poartas , balcon , submdisj , v , matrx , figura , neuroni , raze , roboti1 , bila , iepurasi , colorare , mat , submatrix1 , simetric1 , plaja , xor2 , guess , albine1 , joct , alfabetar , stele , tablou1 , alpinist , cladire , cri , grupe2 , el , mahjong , sir9 , acces , tort1 , joc17 , mesaj3 , zar1 , xy , poteci , avioane , broscute , safeu , acoperire1 , radioactiv , robot4 , lcdr , jb , slide , maxtri , dame , triunghi4 , elicop , compresie , mijloc , cubulete , romb , medalion , bile6 , zigzag , puncte5 , intersectii , matd3 , matrixdel , speed , seif1 , traseu2 , incadrare , betasah , zona , latin , zmax , amestec , sudoku1 , gradina1 , spider , zone , bemo , rombul , interclasare , rebus1 , tabla , arrows , pseudobil , patrat1 , rascoala , harta2 , relatii , lasere , defrag , matcnt , ssdj , cript , ssk , teren1 , fence , cifre6 Despre vector : trei , simetric , egal , ruleta , pod , uscat , afise , an , bunici , cursa , onu , tramvai , cadou , kpal , expresie , piticot , roci , petrol , grad , ruleta2 , ecran , palma , concurs , holo , ab2 , tren2 , cifre , mgo , firma , anagrame , joc2 , br , maxim , astre , numere2 , baby , zapada , hd , startrek , vecini2 , drept , teatru , tir , patrate2 , nr , cifra , repeat , unu , criptare , ratb , placi , sume3 , turist , matrice3 , pavaj , sume , kafka , bacan , spair , grup , friends2 , bitslang , fisc , scor2 , cat , nr3 , chimie2 , zid , politics , submat , reteta2 , rezervatie , creioane , felinare , 2numere , exp , scoici , patrate1 , playlist , sqr , carte , oua , turn , ants , div3 , jeton , politic , trecere , maraton , zaruri , suma1 , mere1 , agitatie , lacuri , secv , sotron , triunghi , carti1 , spioni , kalah , excursia , matricea , maxq , oras , furnici , baschet , ingerasi , numar1 , prieteni , aritma , cezar , bifo , pal , seceta , bare , soricel1 , antena , paianjen , bloc , schi , suma3 , fractie , tunel , pepsi , prefix , tren3 , avion , premii1 , csir , top , bsir , secvente , cod4 , cuburi3 , limbaj , panouri , sant1 , zumzi , sport1 , baschet1 , mere3 , powerpuff , placare , sir4 , volei1 , tabel , ocr , numere7 , lacusta , flori , pluton , elfi , mare , grupe1 , maroco , cartonas , cabina , case , cod5 , furnica , numere8 , paritate , comoara1 , exponent , control , exp1 , joc13 , popas , reactivi , siruri1 , vanatoare , submult , text1 , taxe1 , visul , paranteze , puncte3 , cub3 , numere9 , panglica , pietre , poartas , sume2 , bal , secvsir , vot , prefix1 , accesibil , palc , standard , bursa , meteo , jetoane , printesa , palindrom , joker , matriosca , loto , cuvant , cladiri1 , secvente1 , zar , tren4 , asociativ , lego , medalii , figura , joc14 , neuroni , char , dartz , turism1 , calorii , xor1 , paltrei , album , livada1 , colorare , greutati , brazi , submatrix1 , plaja , cd1 , cifru3 , permutare , miere , tetris1 , conferinta , atelier , radical , bileprime , nx , atletism , sumb , minmax , sumacifre , jocprim , sircifre , cmmdcsecv , secvb , siruri3 , cifru4 , vase , carte1 , grad1 , litere , magic6 , macheta , butoane , ec , stalpi2 , fagure , goe , papusa , taburet , mesaj3 , zar1 , joc16 , talent , joc18 , cos , punctfix , risipa , liste , triburi , nr0 , oneton , nor , nrpomi , paisprezece , anagramabil , zuma , joc20 , dale , perechi2 , consiliu , becuri2 , codpatrat , adprod , qtri , reconst , arme , triunghi4 , deal , ozn1 , cifru5 , flori1 , elicop , roata , trifoi , maxbin , culori2 , numar5 , bile6 , proiecte , alune , cuburi4 , sstabil , intersectii , copaci2 , 7segmente , amedie , drept2 , divider , eliminare , matd3 , prodnr , fraze , vectori1 , compar , unific , galbeni , clepsidru , calcule , puncte6 , maxp , cursa1 , secvp , swap , extraprime , onigim , divizori1 , remi1 , tetris3 , amestec , eoliene , split , momente , secvente2 , ausoara , aranjare2 , vintage , binremove , sminus , subsets , interclasare , palindromuri , colina , doitrei , rebus1 , tcif , munte3 , triunghi6 , schi1 , rascoala , solitar , praslea , vot2 , tema , sprime , sir2dif , aperm , unudoi , prajituri , tan , concurs4 , ech , arc , dominant , ordine , tv1 , nebuni , sort2dist , lightbot , iepuras1 , castig 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 , 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 , permtr , relatii , 2sah , matcnt , magic7 , nmult , roua