# Find original array from encrypted array

QUESTION

Find original array from a given encrypted array of size n. Encrypted array is obtained by replacing each element of the original array by the sum of the remaining array elements.

“TESTCASE_1”: “5\n6 8 9 2 1\n###—###SEPERATOR—###—\n0 -2 -3 4 5”, “TESTCASE_2”: “6\n1 2 3 4 5 6\n###—###SEPERATOR—###—\n3 2 1 0 -1 -2”, “TESTCASE_3”: “7\n1 23 56 4 8 45 32\n###—###SEPERATOR—###—\n27 5 -28 24 20 -17 -4”, “TESTCASE_4”: “4\n0 -1 -3 8\n###—###SEPERATOR—###—\n1 2 4 -7”, “TESTCASE_5”: “0\n###—###SEPERATOR—###—\n0

``````#include<iostream>
using namespace std;

// Finds and prints the elements of the original
// array
void findAndPrintOriginalArray(int arr[], int n)
{
// total sum of elements
// of encrypted array
int i,arr_sum = 0;
for ( i=0; i<n; i++)
arr_sum += arr[i];

// total sum of elements
// of original array
arr_sum = arr_sum/(n-1);

// calculating and displaying
// elements of original array
for (i=0; i<n; i++)
cout << (arr_sum - arr[i]) << " ";
}

// Driver program to test above
int main()
{
int arr[30],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
findAndPrintOriginalArray(arr, n);
return 0;
}``````