D 最大价值
对于每一个零件都有一个适宜温度区间,[Ri,Ji],当温度t<Ri,零件价值为x,当t>Ji,零件价值为z;当温度适宜,价值为y。且y>x,y>z。此刻,有一恒温箱,可确定温度t。
输入
第一行按顺序分别为 n,x,y,z。0<n<20000
接下来n行为 每一个零件的适宜温度区间0<Ri<Ji<109
输出
确定一个温度值t,在这温度下所有零件的总价值最大,并输出该价值
测试数据
3 1 3 2
1 4
2 5
7 10
输出
7
#include "stdio.h"
typedef struct Tem
{
int l;
int r;
}Tem;
Tem tem[20001];
int main()
{
int n,x,y,z;
int max=0;
scanf("%d%d%d%d",&n,&x,&y,&z);
for(int i=0;i<n;i++)
{
scanf("%d%d",&tem[i].l,&tem[i].r);
if(tem[i].r>max)
{
max = tem[i].r;
}
}
int sum=0,t=0;
for(int j=0;j<max;j++)
{
sum=0;
for(int i=0;i<n;i++)
{
if(tem[i].l>j&&tem[i].r>j)
sum+=x;
else if(j>tem[i].l&&tem[i].r<j)
sum+=z;
else
sum+=y;
}
if(t<sum)
t = sum;
}
printf("%d\n",t);
return 0;
}
注:若有错有误,欢迎留言修改!谢谢了!