【題目】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);
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章