ধরি আমাদের একটি পূর্ণসংখ্যার অ্যারে আছে যা এনক্রিপ্টেড অ্যারে। ধরি অ্যারেটি A = [10, 14, 12, 13, 11], আসল অ্যারে B = [5, 1, 3, 2, 4], আমরা দেখতে পাচ্ছি A-এর প্রতিটি এলিমেন্ট সূচক I-তে এই নিয়ম মেনে চলে: A[i] = B[j]-এর সব এলিমেন্টের যোগফল যেখানে i ≠ j। আমাদের কাজ হল এনক্রিপ্টেড অ্যারে থেকে আসল অ্যারে বের করা।
এটি গাণিতিক পর্যবেক্ষণের ওপর ভিত্তি করে। ধরি অ্যারের আকার ৪, আসল অ্যারে B = [a, b, c, d], তাহলে A হবে A[b+c+d, a+c+d, a+b+d, a+b+c]। B-এর সব এলিমেন্ট যোগ করলে পাব sum = 3*(a+b+c+d)। সুতরাং B-এর এলিমেন্টগুলোর যোগফল = sum/3। এখন B-এর এলিমেন্টগুলো হবে [sum - A[0], sum - A[1], sum - A[2], sum - A[3]]।
উদাহরণ কোড
#include <iostream>
using namespace std;
void showOrigianlArray(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++)
sum += arr[i];
sum = sum / (n - 1);
for (int i = 0; i < n; i++)
cout << (sum - arr[i]) << " ";
}
int main() {
int arr[] = {10, 14, 12, 13, 11};
int n = sizeof(arr) / sizeof(arr[0]);
showOrigianlArray(arr, n);
}
আউটপুট
5 1 3 2 4