一、题目
详见代码
二、代码
import java.util.Scanner;
/**
* 3
* 1 1 5 10
* 2 3 4
* 1 4 6 -5
*/
public class main4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
//输入行数row
int row = in.nextInt();
//输入成长值
String\[\] strArr = new String\[row\];
String a = in.nextLine();
for (int i = 0; i < strArr.length; i++) {
strArr\[i\] = in.nextLine();
}
//test
System.out.println(strArr\[0\]);
System.out.println(strArr\[1\]);
System.out.println(strArr\[2\]);
//
//计算成长值
int mLast = 0; //每日成长值开始时间
int nLast = 0; //每日成长值结束时间
int valueLast = 0;//每日成长值
int mNext = 0; //每日成长值开始时间
int nNext = 0; //每日成长值结束时间
int valueNext = 0;//每日成长值
int value2Sum = 0; //任务成长值累计值
int value1Sum = 0; //每日成长值累计值
int count = 0; //统计每日成长值的数据有多少条
int sum = 0; //总成长值
for (int i = 0; i < strArr.length; i++) {
String\[\] strArr1 = strArr\[i\].split(" ");
//test
for (int j = 0; j < strArr1.length; j++) {
System.out.println(strArr1\[j\]);
}
//
if (Integer.parseInt(strArr1\[0\]) == 2) {
value2Sum = value2Sum + Integer.parseInt(strArr1\[2\]);
}
if (count != 0) {
if (Integer.parseInt(strArr1\[0\]) == 1) {
mNext = Integer.parseInt(strArr1\[1\]);
nNext = Integer.parseInt(strArr1\[2\]);
valueNext = Integer.parseInt(strArr1\[3\]);
value1Sum = value1Sum + valueNext \* (nNext - mNext + 1);
if (valueNext >= valueLast && nLast >= mNext) {
value1Sum = value1Sum - (Math.abs(nLast - mNext) + 1) \* valueLast;
}
if (valueNext < valueLast && nLast >= mNext) {
value1Sum = value1Sum - (Math.abs(nLast - mNext) + 1) \* valueNext;
}
valueLast = valueNext;
nLast = nNext;
count++;
}
}
if (count == 0) {
if (Integer.parseInt(strArr1\[0\]) == 1) {
mLast = Integer.parseInt(strArr1\[1\]);
nLast = Integer.parseInt(strArr1\[2\]);
valueLast = Integer.parseInt(strArr1\[3\]);
value1Sum = valueLast \* (nLast - mLast + 1);
}
count++;
}
}
sum = value1Sum + value2Sum;
System.out.println(sum);
}
in.close();
}
}
-------------------------------------------
答案仅供参考
手机扫一扫
移动阅读更方便
你可能感兴趣的文章