为什么只能过一半 逻辑和别人都一样啊
查看原帖
为什么只能过一半 逻辑和别人都一样啊
1604797
zsc2094435373楼主2025/1/9 17:06
#include<iostream>
#include<algorithm>

using namespace std;
long long h[500];

int main()
{  //  1  3  7  2
	//1 2 3 7       49+36
	//49+36+4+1   

	int n;
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		cin >> h[i];
	}

	sort(h, h + n);

	int front=0, rear=n-1;
	int sum = h[rear]*h[rear];
	int flag = -1;
	int temp = -1;
	while (front <rear)
	{

			sum += (h[rear] - h[front]) * (h[rear] - h[front]);
		
			if (flag < 0) {      //3  5  6 
				//36+9+4
				rear--;
				flag *= temp;
				//cout << "hehr1" << endl;
			}
			else {
				front++;
				flag *= temp;
				//cout << "hehr2" << endl;
			}
		//cout << "hehr3" << endl;


	}//3 5 6
	//2  1

	cout << sum;
	return 0;
}
2025/1/9 17:06
加载中...