Lista de probleme 19

Etichete

După zile întregi de muncă, vrăjitorul Arpsod a terminat de confecționat noua sa baghetă magică, cea mai puternică de până acum. Ca să o testeze, el s-a gândit la următorul antrenament: își va lua K ținte miscătoare și se va apuca să tragă în ele cu cea mai puternică vrajă a lui, “Blatus Blast”. Fiind o magie foarte solicitantă, vrăjitorul a hotărat că va trage doar de N ori. Arpsod este un trăgător extraordinar, astfel fiecare din cele N lovituri va nimeri exact una din cele K ținte. Într-o sesiune de N lovituri, unele ținte pot fi lovite de mai multe ori iar altele niciodată. Vrăjitorul consideră că sesiunea de antrenament este reușită numai dacă fiecare țintă a fost lovită CEL PUȚIN O DATĂ.

În timp ce se odihnește pentru următoarea sesiune de antrenament, ca să mai treacă timpul, a început să numere în câte moduri ar fi putut lovi țintele astfel încât sesiunea de antrenament să fie una reușită.

Curioși din fire, v-ați apucat și voi să numărați dar, văzând că numărul modalităților devine prea mare, ați decis să vă mulțumiți cu restul împărțirii acestui număr la 666013.

Concursul EMPOWERSOFT, 2016

#1761 Brutar

Renumitul nostru brutar a avut azi noapte un vis tare ciudat: acesta trăia într-un univers paralel în care nu omul îl mănâncă pe blat ci blatul îl mănâncă pe om… (eh, poate nu chiar atât de paralel). Astfel, brutarul nostru a fost atacat de blatul pe care tocmai îl pregătise (pentru prăjituri, evident) și a încercat să scape. Acesta a ieșit din brutărie și a ajuns în fața unui câmp de formă dreptunghiulară, cu dimensiunile cunoscute, ce poate fi împărțit în celule elementare cu latura de o unitate (exact ca o matrice!). Acesta poate intra pe câmp prin orice celulă a primei linii și trebuie să ajungă în orice celulă a ultimei linii (blatul se va întări până va ajunge acolo). Unele celule îi sunt inaccesibile din cauza diverselor obstacole (pietre, pomi, gropi,etc.)

Brutarul nostru se poate deplasa în 6 moduri:

  • Din căsuța curentă în cele adiacente ( Nord, Vest, Sud, Est )
  • Două mișcări speciale ce pot varia.

Mutările speciale vor fi citite din fișier și o mutare se va codifica astfel: xA yB, unde x și y sunt numere naturale nenule iar A și B sunt două caractere ce codifică direcția (A poate fi 'N' sau 'S' de la Nord respectiv Sud iar B poate fi ‘E’ sau ‘V’ de la Est respectiv Vest)

O mutare specială se poate face dacă celula destinație nu este ocupată de un obstacol și dacă nu implică ieșirea brutarului din matrice.

Brutarul vă roagă să îi specificați un traseu cu număr minim de celule parcurse, ce pornește de pe prima linie și se termină pe ultima linie, pentru a nu fi blătuit (mâncat de blat).

În clasa a 10-a Alina, Bogdan şi Clara se întâlneau în fiecare săptămână să se joace BlitzCatan. Ei aveau la dispoziţie o repriză de 2 ore pe care o foloseau din plin, fiecare joc durând cel puţin 30 de minute. Cei trei prieteni, dornici să reţină cine a câştigat fiecare joc au vrut sa noteze într-un carneţel. Ei s-au temut ca cineva le va citi carneţelul, aşa că au procedat astfel:

  • la finalul unui joc i, câştigătorul c, alege un număr secret \(m_i\) > 0 astfel încât \(m_i\) % 3 = c (Alina alege un multiplu de 3 când câştigă, Bogdan un multiplu de 3+1, Clara un multiplu de 3+2)
  • la finalul celor 2 ore, ei calculează unde J este numărul de jocuri, şi notează T în carneţel

Concursul EMPOWERSOFT, 2016

Cunoscându-se numărul N de tipuri de produse și cantitățile din fiecare produs, în ordinea în care sosesc de la magazie, să se stabilească numărul maxim de pachete care se pot obține prin alegerea convenabilă a perechilor de produse consecutive și programarea corespunzătoare a automatului, pentru fiecare pereche aleasă.

Concursul EMPOWERSOFT, 2016

În Regatul din Sud nu e niciodată prea devreme să te pregăteşti de război. De aceea, în fiecare an Regele organizează un concurs în care premiaţi sunt cei mai buni strategi. Mai întâi, Strategul Şef alege configuraţia ideală de razboi, în care armata va fi dispusă. O trupă într-o configurație e reprezentată de o literă mica din mulțimea {'a'..'z'}. De exemplu, configuraţia “ffscaam" descrie o armată formată din doi fermieri, un soldat, un cavaler, doi arcaşi şi un mag. Bineînţeles, în timpul unei lupte, trupele nu îşi vor menţine neapărat poziiţile inţiale. Cu toate acestea, orice tip de trupă poate schimba poziţia cu maxim un alt tip de trupă, ştiut de dinainte de toţi locuitorii regatului. De asemenea se ştie că arcaşii nu schimbă poziţii decât între ei. Pentru exemplul anterior, dacă un fermier sau un soldat nu schimbă poziţii decât cu un alt fermier sau soldat, configuraţii echivalente cu “ffscaam" sunt “fsfcaam" şi “sffcaam".

Fiecare strateg concurent alege o configuraţie, iar câştigătorii sunt cei care aleg configuraţii echivalente cu cea a Strategului Şef.

#1816 Unicorn

Este ziua unicornului Corn şi prietenii lui vor să-i pregătească o surpriză, un mare turn de clătite! Totul trebuie să fie perfect, și toată lumea știe că cel mai frumos turn are formă de corn (clătitele sunt așezate în ordine strict descrescătoare după rază). Ei pregătesc clătite de diferite mărimi și le așază una peste alta. Fiecare clătită are o anumită valoare nutritivă. După ce termină de gătit, aceștia vor să creeze un turn de clătite in formă de corn pentru prietenul lor Corn. Astfel, unicornii pot alege să mânance oricâte clătite vor, clătitele rămase păstrându-și ordinea inițială. Clătitele care rămân în farfurie (pastrând ordinea inițială) trebuie să aibă formă de corn (strict descrescător după rază). Deoarece Corn adoră clătitele, ei vor ca turnul Corn format din clătitele rămase după ce aceștia mănâncă să aibă cea mai mare valoare nutritivă (suma valorilor nutritive ale clătitelor rămase).

Programatoarea Petra a început un curs de criptografie. Fiind un spirit creativ, Petra a creat deja o metodă elaborată de criptare a unei parole sub forma unei perechi (tabel de litere aparţinând mulţimii {‘a’...’z’}, dicţionar de cuvinte). Din păcate pentru Petra, metoda ei de criptare a parolei, poate fi decriptată de oricine astfel:

  • se iau tabelul de litere şi dicţionarul de cuvinte permise
  • se listează, sortează şi numără toate cuvintele care se găsesc în tabel. Un cuvânt \(c_1c_2:::c_k\) care există în dicţionar există şi în tabel dacă, fiecare literă ci apare în tabel şi pentru i>1, \(c_i\) este vecină în tabel cu litera \(c_{i-1}\).
  • din lista sortata de T perechi (\(cuvânt_i\), \(a_i\)), unde \(cuvânt_i\) este un cuvânt iar \(a_i\) este numărul de apariţii în tabel, reconstituie litera \(p_i\) a parolei astfel: \(p_i =\) ‘a’ + ( \(a_i\) mod 26). Încercând să îmbunătăţească algoritmul, Petra a decis să înlocuiască unele litere din tabel cu semnul întrebării '?'. Un semn '?' poate fi înlocuit cu orice literă când se parcurge tabelul. Convinge-o pe Petra că, în ciuda îmbunătăţirii, îi poţi găsi parola pornind de la orice pereche de (dicţionar, tabel de litere) dată.

Concursul EMPOWERSOFT, 2016

#1757 Sec

În timp ce-și bea sortimentul preferat de vin sec, vrăjitorului Arpsod i-a venit în minte o problemă de informatică ce are un enunț cel puțin la fel de sec și anume:
Dându-se un arbore binar cu N noduri și rădăcina în nodul 1, să se răspundă la Q întrebări de forma: “sunt cei doi fii ai nodului X identici?”

Doi fii sunt identici dacă au același număr de subarbori și aceștia sunt identici (mai exact, pentru orice i=1, 2, ..., N subarborele i al primului este identic cu subarborele i al celui de-al doilea).

Cunoscându-se arborele, să se răspundă la cele Q întrebări de forma indicată în enunţ.

Alex s-a decis să organizeze pentru colegii lui un concurs de orientare turistică, pe care l-a intitulat “Treasure Hunt”, nu pentru că ar fi avut ceva bogății de ascuns, ci pentru a-i face curioși și a-i mobiliza să mai lase puțin joaca pe calculator și să facă mișcare în aer liber. Pentru aceasta el a cercetat terenul pe care s-a decis să organizeze acest concurs și a identificat n puncte posibile de amplasare a posturilor de control, prin care concurenții să treacă obligatoriu și de unde să primească indicii referitoare la următorul punct. Bineînțeles că în punctele de control există și “comori” ascunse, care au asociate anumite punctaje, de valori cunoscute. A notat pe o hartă coordonatele (x,y) ale acestor puncte, în ordinea necesară parcurgerii lor, dar și altitudinea la care se
află acestea și punctajul p atribuit “comorii” din acel punct. Problema a apărut mai târziu, atunci când Alex s-a decis să nu lase un concurent să se oprească în toate punctele, pentru că atunci colegii lui ar găsi un motiv să mai tragă de timp pentru a se odihni și concursul ar dura prea mult. Așa că a stabilit să permită maxim M opriri din cele N puncte, cu condiția ca între două opriri succesive distanța de pe traseu să nu fie mai mică decât o valoare impusă, d, stabilită de Alex printr-o metodă proprie. Trecerea prin toate punctele este obligatorie, așa că distanța se calculează ca suma distanțelor dintre puncte. Curios din fire, Alex vrea să știe:

  • Care este efortul total pentru parcurgerea întregului traseu și care este distanța maximă între două puncte de pe traseu. Efortul trebuie calculat după o formulă pe care tot Alex a stabilit-o ca suma eforturilor de pe fiecare tronson în parte, definit astfel
    \( e =
    \begin{cases}
    𝑑 + 𝑑 ∗ ∆ℎ/10 & \text {, 𝑑𝑎𝑐a 𝑢𝑟𝑐a} \\
    𝑑 + 𝑑 ∗\frac{|∆ℎ|}{5∗10} & \text{, 𝑑𝑎𝑐a 𝑐𝑜𝑏𝑜𝑎𝑟a} \\
    \end{cases} \), unde ∆ℎ este diferența de altitudine dintre două puncte consecutive de pe traseu, chiar dacă în acestea concurentul nu se oprește.
  • Care este punctajul maxim pe care îl poate obține un concurent, și care ar trebui să fie punctele de control în care să se oprească pentru a le obține. Din păcate Alex nu e prea bun la informatică, așa ca vă roagă pe voi să-l ajutați.