Diferente pentru problema/cia intre reviziile #1 si #2

Diferente intre titluri:

cia
CIA

Diferente intre continut:

== include(page="template/taskheader" task_id="cia") ==
Poveste şi cerinţă...
Pentagonul a primit un nou mesaj de la unul din agenţii săi secreţi. Mesajul este reprezentat de un şir de N numere naturale. Pentru a putea verifica autenticitatea mesajului, agenţii trebuie să ataşeze la mesaj o cheie de verificare, a cărei metodă de obţinere este cunoscută doar de către membrii agenţiei. Comisia InfoOltenia a reuşit să afle această metodă: având la dispoziţie 2 numere M şi K cunoscute, pentru fiecare subsecvenţă de K numere din şir se calculează restul împărţirii produsului lor la M, iar cheia de verificare va fi suma xor a acestor resturi.
 
h2. Cerinţă
 
Cunoscându-se M, K şi şirul de numere pe care comisia vrea să îl trimită Pentagonului, determinaţi cheia de verificare corespunzătoare şirului de numere, care trebuie ataşată mesajului.
h2. Date de intrare
Fişierul de intrare $cia.in$ ...
Prima linie a fişierului $cia.in$ va conţine numerele N, T, K şi M.
A doua linie va conţine elementele unui şir A, de T numere naturale.
A treia linie va conţine elementele unui şir B, de T numere naturale.
Fie V şirul de N numere care trebuie transmis, pentru fiecare i(0≤i≤N-1) V[i] se va calcula după formula:
V[i] = (A[i mod T] xor B[i div T]) mod M. Şirurile V, A, B sunt indexate de la 0, a mod b reprezintă restul
împărţirii lui a la b, a div b reprezintă câtul împărţirii lui a la b, iar a xor b, suma xor a numerelor a şi b.
h2. Date de ieşire
În fişierul de ieşire $cia.out$ ...
În fişierul $cia.out$ afi pe prima linie cheia de verificare corespunzătoare şirului dat.
h2. Restricţii
* $... ≤ ... ≤ ...$
* T ≤ 70.000
* 1 ≤ K ≤ N ≤ 10 7
* 1 ≤ M < 2 30
* Elementele şirurilor A şi B sunt numere naturale ce pot fi reprezentate pe 32 de biţi cu semn.
* pentru 5% din punctaj: 1 ≤ N*K ≤ 10 7
* pentru alte 15% din punctaj 1 ≤ N ≤ 200.000, iar M este prim
* pentru alte 15% din punctaj 1 ≤ M ≤ 10 7 , M este prim
* pentru alte 25% din punctaj 1 ≤ N ≤ 200.000
* prin subsecvenţă se înţelege un subşir de elemente plasate pe poziţii consecutive.
h2. Exemplu
table(example). |_. cia.in |_. cia.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 4 3 3 15
3 4 1
5 5 2
| 0
|
h3. Explicaţie
...
Şirul ce trebuie transmis este (6, 1, 4, 6).
Avem 2 subsecvenţe de lungime 3. Ambele au produsul elementelor 24, deci ambele au restul împărţirii produsului elementelor la 15 egal cu 9.
Suma xor a numerelor 9 şi 9 este 9 xor 9 = 0.
== include(page="template/taskfooter" task_id="cia") ==
 
== include(page="template/taskfooter" task_id="cia") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.