【题目】Problem D.最大价值

ProblemD

题目:最大价值
对于每一个零件都有一个适宜温度区间,[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

import java.util.Scanner;
/*
ProblemD 
题目:最大价值 
对于每一个零件都有一个适宜温度区间,[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    
*/
public class Test{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while(scanner.hasNext()) {
			int n = scanner.nextInt();
			int x = scanner.nextInt();
			int y = scanner.nextInt();
			int z = scanner.nextInt();
			int sum = 0, max = Integer.MIN_VALUE;
			int[] nums = new int[100];
			nums[0] = x;
			nums[nums.length -  1] = z;
			for(int i = 0; i < n; i++) {
				
				nums[scanner.nextInt()] += y;
				nums[scanner.nextInt()] -= y;
			}
			for(int j = 0; j < nums.length; j++) {
				sum += nums[j];
				if(sum > max) max = sum;
			}
			System.out.println(max);
		}
	}
}
发布了233 篇原创文章 · 获赞 254 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_44485744/article/details/104912830