Diferente pentru problema/mcript intre reviziile #7 si #8

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="mcript") ==
Pe planeta Marte, transferul de informaţii în armata marţiană se făcea necriptat. Atacul cibernetic venit de pe Pământ **i**-a determinat să  implementeze un sistem de criptare a informaţiilor. Alfabetul marţian este numeric şi conţine **N** simboluri, cifre de la **1** la **N**. În dicţionarul marţian sunt **M** cuvinte distincte. Marţienii au creat codul de criptare ca o succesiune **c{~1~}c{~2~}...c{~N~}** de simboluri distincte din alfabet cu semnificaţia: simbolul  **c{~1~}** este codificat prin $1$, simbolul  **c{~2~}** este codificat prin $2$ ş.a.m.d. Un cuvânt se criptează înlocuind simbolurile din care este format cu cele corespunzătoare codului de criptare. De exemplu, pentru $3$ simboluri şi codul de criptare $312$, cuvântul $133211$ va fi criptat ca $211322$. Pământenii au interceptat un mesaj format din **K** linii, pe fiecare linie aflându-se un număr dat de cuvinte criptate. În războiul cibernetic dintre Pământ şi Marte, pământenii au aflat codul de criptare şi dicţionarul.
 
h2. Cerinţă
 
Ai fost desemnat informaticianul cel mai inteligent de pe Pământ şi trebuie să implementezi un algoritm care să verifice dacă propoziţiile din care este format mesajul sunt valide sau au fost alterate în drumul dintre Marte şi Pământ. O propoziţie este validă dacă toate cuvintele care o alcătuiesc apar, după decriptare, în dicţionarul marţian.
 
h2. Date de intrare
 
Fişierul text **mcript.in** conţine pe prima linie numărul **N** de simboluri din alfabetul marţian, pe a doua linie, şirul cifrelor (fără spaţii separatoare) ce reprezintă codificarea acestora. Pe a treia linie se află numărul **M** de cuvinte din dicţionar, urmat de cele **M** cuvinte, separate prin câte un spaţiu. Pe linia următoare se află numărul **K** de propoziţii ale mesajului criptat interceptat apoi, pe **K** linii succesive, numărul de cuvinte din propoziţia curentă, urmat de cuvintele ce o formează,  separate prin câte un spaţiu
 
h2. Date de ieşire
 
În fişierul text **mcript.out** se vor scrie **K** numere binare, câte unul pe o linie, corespunzător celor **K** propoziţii din
mesajul criptat astfel: $1$ pentru o propoziţie validă şi $0$ altfel
 
h2. Restricţii
 
* $1 ≤ N ≤ 9$
* $1 ≤ M ≤ 1 000 000$
* un cuvânt marţian este format din maxim $9$ simboluri nu neapărat distincte
* cuvintele din mesaj folosesc doar simboluri din alfabetul marţian
* numărul total de cuvinte din mesaj nu va depăşi $800.000$
* propoziţie are cel puţin un cuvânt
 
h2. Exemplu
 
table(example). |_. mcript.in |_. mcript.out |
| 3
132
4 213 32 31 12
3
3 312 23 21
4 13 312 13 213
1 13
| 1
0
1
|
 
h3. Explicaţie
 
$1 (312 -> 213, 23 -> 32, 21 -> 31)$
$0 (213 -> 312, 312-cuvânt inexistent în dicţionar)$
$1 (13 -> 12)$
== include(page="template/taskfooter" task_id="mcript") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.