|
||||||||||||
ultima problemă
grupă: mică
sursă: OMI 2016 ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
|
Cu ocazia implinirii unei frumoase varste Vasile pregateste o masa mare, la care invita pe cei n apropiati ai sai. Masa cea mare este circulara, invitatii stau de jur imprejur, la distante egale unul de altul, singura problema este aranjarea invitatilor. Se stie ca cei batrani sunt mai pretentiosi, mai pisalogi si mai influenti. Pentru a evita conflictele intre generatii si supararea celor batrani, Vasile vrea sa aiba cat mai putini batrani asezati intre doua persoane mai tinere. E clar ca nu poate evita complet astfel de situatii, decat invitand persoane de aceeasi varsta ceea ce nu e cazul, invitatii sai avand varste diferite, nu exista nici macar doi cu aceeasi varsta. Incercand tot felul de scheme de aranjare el isi pune problema in cate moduri poate realiza asezarea invitatilor la masa ca sa nu aiba prea multe persoane asezate intre doua persoane mai tinere. Cerinta Scrieti un program care determina, cunoscand numarul invitatilor, cate posibilitati de aranjare a lor exista ca sa avem cel mult k persoane mai in varsta asezati intre doi vecini mai tineri. Nu se considera diferite aranjarile obtinute prin permutari circulare sau prin schimbarea sensului de parcurgere (deci 1234 este aceeasi aranjare cu 2341 si cu 1432). Date de intrare In fisierul de intrare aranjari.in sunt scrise numerele n si k separate printr-un spatiu. Date de iesire In fisierul aranjari.out se va scrie numarul posibilitatilor de aranjare conform cerintei. Restrictii
Exemplu
prof. Mot NIstor propunător: Prof. Emanuela Cerchez emanuela.cerchez@gmail.com |
|||||||||||
surse trimise | ajutor |