如题,我的代码如下
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
int pos(int n)
{
return (n > 0) ? n : 0;
}
int main()
{
int a[12],s = 0;
double p;
for(int i = 0;i < 12;i++)
{
scanf("%d",&a[i]);
s += a[i];
if(s <= 310) p = 3*a[i];
if(s > 310 && s <= 520) p = 3*pos(310-(s-a[i]))+3.3*((s-a[i])>310?a[i]:(s-310));
if(s > 520) p = 3*pos(310-(s-a[i]))+3.3*pos(520-(310<(s-a[i])?s-a[i]:310))+4.2*((s-a[i])>520?a[i]:s-520);
printf("%.1f\n",p);
}
return 0;
}
这份代码AC了,但是花了我挺长时间。感觉这道题应该有简单的做法,但我想不出来。求助各位。