题目链接
将a个300,b个100,c个50存放在arr[]中,再用两个for循环分别将arr[i]代入公式求出最高分与最低分。
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
int t,a,b,c,arr[2500];
cin>>t;
while(t--)
{
cin>>a>>b>>c;
int k=1;
for(int i=1; i<=a; i++)
{
arr[k++] = 300;
}
for(int i=1; i<=b; i++)
{
arr[k++] = 100;
}
for(int i=1; i<=c; i++)
{
arr[k++] = 50;
}
int n = a+b+c;
int min_sum = 0,max_sum = 0;
for(int i=1; i<=n; i++)
{
min_sum+=arr[i]*((i-1)*2+1);
}
for(int i=n; i>=1; i--)
{
max_sum +=arr[i]*((n-i)*2+1);
}
cout<<min_sum<<" "<<max_sum<<endl;
}
return 0;
}