#include #include #include #include #include #include #include //#include //using namespace std; // Function to return gcd of a and b int gcd(int a, int b) { if (a == 0) return b; return gcd(b%a, a); } // Function to find gcd of array of // numbers int findGCD(int arr[], int n) { int result = arr[0]; for (int i=1; i max) max = arr[i]; return max; } long int maximumValue(int a_size, int* a) { // Return the maximum value of f among all subsegments [l..r]. int resgcd,ressum,resmax; resgcd=findGCD(a,a_size); ressum=sum(a,a_size); resmax=largest(a,a_size); return (resgcd*((ressum)-resmax)); } int main() { int n; scanf("%i", &n); int *a = malloc(sizeof(int) * n); for (int a_i = 0; a_i < n; a_i++) { scanf("%i",&a[a_i]); } long int result = maximumValue(n, a); printf("%ld\n", result); return 0; }