View Code of Problem 4065

#include<stdio.h>
#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef struct node {
	int num;
	int flag;
};
bool cmp(node a, node b)
{
	return a.num > b.num;
}
int main() {
	int n;
	cin >> n;
	node a[101];
	for (int i = 0;i < n;i++)
	{
		cin >> a[i].num;
		a[i].flag = 0;
	}
	sort(a, a + n, cmp);
	long long sum = 0;
	sum = pow(a[0].num, 2);
	a[0].flag = 1;
	int max = 0;
	int maxid=0;
	int pre = a[0].num;
	while (1)
	{
		for (int i = 0;i < n;i++)
		{
			int cha;
			
			if (a[i].flag == 0)
			{
				if (fabs(a[i].num - pre) > max)
				{
					max = fabs(a[i].num - pre);
					maxid = i;
				}
			}
		}
		a[maxid].flag = 1;
		sum += (a[maxid].num - pre)*(a[maxid].num - pre);
		pre = a[maxid].num;
		max = 0, maxid = 0;
		int ff = 0;
		for (int i = 0;i < n;i++)
		{
			if (a[i].flag == 0)
			{
				ff = 1;
				break;
			}
		}
		if (ff == 0)
			break;
	}
	cout << sum;
	
}

Double click to view unformatted code.


Back to problem 4065