Diferente pentru problema/mcript intre reviziile #1 si #17

Diferente intre titluri:

mcript
Mcript

Diferente intre continut:

== include(page="template/taskheader" task_id="mcript") ==
Poveste şi cerinţă...
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 de intrare $mcript.in$ ...
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 de ieşire $mcript.out$ ...
Î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 |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 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") ==
 
== include(page="template/taskfooter" task_id="mcript") ==

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
7515