蓝桥杯 历届真题 答疑 C++

题目链接:
http://lx.lanqiao.cn/problem.page?gpid=T2867

贪心算法,想了想用sort不太会二维的写法,最后选了最傻的冒泡,谢谢它能过哈

#include
#include

using namespace std;
int n;
long long sum=0;
long long a[1001][2];

bool cmp(long long a[], long long b[])
{
	if (a[1] != b[1])
		return a[1] < b[1];
	else
		return a[0] < b[0];
}

int main()
{
	int i,j;
	long long x, y, z;
	long long k1, k2;
	cin >>n;
	for (i = 0; i < n; i++)
	{
		cin >> x >> y >> z;
		a[i][0] = x + y;
		a[i][1] = x + y + z;
	}
	
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n-1; j++)
		{
			if (!cmp(a[j], a[j + 1]))
			{
				k1 = a[j][0];
				k2 = a[j][1];
				a[j ][0] = a[j+1][0];
				a[j ][1] = a[j+1][1];
				a[j + 1][0] = k1;
				a[j + 1][1] = k2;
			}

		}
	}

	for (i = 0; i < n; i++)
	{
		sum += (a[i][0] + a[i][1] * (n - i-1));
	}
	cout << sum;
	return 0;
}

你可能感兴趣的:(蓝桥,蓝桥杯,c++)