Se considera urmatoarea secventa de cod C++, aplicata asupra unui tablou secret[] de n octeti (numere intre 0 si 255):
for (int i = 1; i < n; i++) for (int j = 2 * i; j < n; j += i) secret[j] ^= secret[i];
Cunoscand tabloul final f[0..n-1] (valorile din secret[] dupa rularea codului), determinati tabloul original o[0..n-1] (valorile din secret[] inainte de rulare).
- Date de intrare
- Pe prima linie se citeste numarul intreg n. Pe a doua linie se citesc n numere intregi (0-255), tabloul final f[0..n-1].
- Date de iesire
- Se afiseaza n numere intregi separate prin spatiu: tabloul original reconstituit o[0..n-1].
- Restrictii
- 1 <= n <= 100000 0 <= f[i] <= 255
Exemple
Exemplul 1
Intrare
12 109 97 21 4 89 40 62 39 98 72 9 35
Iesire
109 97 116 101 45 73 78 70 79 45 85 66
Exemplul 2
Intrare
1 200
Iesire
200

