公益机会需要从开始到结束全程参与才能获得积分
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) throws IOException {
double[][] val=new double[25][25];
for(int i=0;i<25;i++){
for(int j=0;j<25;j++){
val[i][j]=0.0;
}
}
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String[] free=br.readLine().split(";");
int[][] freetime=new int[free.length][2];
for(int i=0;i<free.length;i++){
String[] cur=free[i].split("-");
freetime[i][0]=Integer.parseInt(cur[0]);
freetime[i][1]=Integer.parseInt(cur[1]);
}
String[] work=br.readLine().split(";");
int begin,end;
for(int i=0;i<work.length;i++){
String[] time=work[i].split(":");
String[] cur=time[0].split("-");
begin=Integer.parseInt(cur[0]);
end=Integer.parseInt(cur[1]);
double value=Double.valueOf(time[1]);
val[begin][end]=Math.max(val[begin][end],value);
}
for (int i = 0; i < val.length; i++) {
for (int j = i+1; j < val.length; j++) {
for (int k = i+1; k < j; k++) {
double tmp = (isEqual(val[i][k], 0) && isEqual(val[k][j], 0)) ? 0.0 : (val[i][k] + val[k][j]);
if (val[i][j] < tmp) {
val[i][j] = tmp;
}
}
}
}
printArray(val);
double totalval=0;
for(int i=0;i<freetime.length;i++){
int first=freetime[i][0];
int last=freetime[i][1];
totalval+=val[first][last];
}
System.out.println(totalval);
}
static void printArray(double[][] value){
int row=value.length;
int col=value[0].length;
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
if(value[i][j]!=0){
System.out.println(i+" "+j+" "+value[i][j]);
}
}
}
}
static boolean isEqual(double a, double b){
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
if(data1.compareTo(data2)==0){
return true;
}
return false;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)