其他分享
首页 > 其他分享> > P4995 跳跳!

P4995 跳跳!

作者:互联网

P4995 跳跳!

题目

题目大概的意思就是给出你n个石头高度 , 让你求消耗体力最大是多少

思路

  1. ans += 最大的数
  2. 如果当前位置是最大的 就找最小的

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
const int N = 1e6 + 10;

int a[N], b[N];

bool cmp (int a, int b) {
	return a > b;
}
signed main ()
{
	ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
	int n; cin >> n;
	for (int i = 0 ; i < n ; i ++) cin >> a[i];
	sort(a, a + n, cmp);
	int ans = 0;
	ans += a[0] * a[0];
	int l = 1 , r = n - 1, flag = 0, now = 0;
	for (int i = 1 ; i < n ; i ++) {
		if (flag == 0) {
			ans += (a[r] - a[now]) * (a[r] - a[now]);
			now = r;
			r --;
			flag = 1;
		}
		else {
			ans += (a[l] - a[now]) * (a[l] - a[now]);
			now = l;
			l ++;
			flag = 0;
		}
	}
	cout << ans << endl;
}

标签:P4995,跳跳,cin,long,int,flag,ans,now
来源: https://www.cnblogs.com/Bbbtt04/p/15854676.html