package deracinema;
public class budget {
int s1,s2,dx;
double h;
int th1[]=new int[6];
int th2[]=new int[6];
int c[][]=new int[6][6];
int y1[][]=new int[6][6];
int y2[][]=new int[6][6];
int upper[][]=new int[6][6];
int gotobud[][]=new int[6][21];
double[][] value=new double[6][11];
double[] bvalue=new double[11];
double[][] gamma=new double[6][11];
double[][] sigma=new double[6][21];
int[] bb=new int[6];
int[] op=new int[6];
void makedata(){
for(s1=1;s1<5;s1++){
for(dx=-5;dx<6;dx++){
bud sub4=new bud();
sub4.th1=th1;
sub4.th2=th2;
sub4.h=h;
sub4.c=c;
sub4.y1=y1;
sub4.y2=y2;
sub4.upper=upper;
sub4.makedata(s1,dx);
bvalue[dx+5]=sub4.maxv;
}
for(dx=-5;dx<6;dx++){
gamma[s1][dx+5]= bvalue[dx+5]-bvalue[5];
}
}
s1=5;
for(dx=-5;dx<6;dx++){
endbud sub5=new endbud();
sub5.th1=th1;
sub5.th2=th2;
sub5.h=h;
sub5.c=c;
sub5.y1=y1;
sub5.y2=y2;
sub5.upper=upper;
sub5.makedata(dx);
bvalue[dx+5]=sub5.maxv;
}
for(dx=-5;dx<6;dx++){
gamma[s1][dx+5]= bvalue[dx+5]-bvalue[5];
}
s1=1;
for(dx=-10;dx<11;dx++){
sigma[s1][dx+10]=-999;
}
for(dx=-5;dx<6;dx++){
sigma[s1][dx+10]=gamma[s1][dx+5];
}
int dxs,dp,dps,z;
double d1,d2,maxd;
for(s1=2;s1<6;s1++){
for(dx=-10;dx<11;dx++){
maxd=-999;
dps=0;
for(dxs=-5;dxs<6;dxs++){
d1=gamma[s1][dxs+5];
dp=dx-dxs;
z=0;
if(dp>10)z=100;
if(dp<-10)z=100;
d1=-999;
if(z<50)d1=gamma[s1][dxs+5]+sigma[s1-1][dp+10];
if(d1>maxd)dps=dp;
if(d1>maxd)maxd=d1;
}
gotobud[s1][dx+10]=dps;
sigma[s1][dx+10]=maxd;
}
}
int t;
bb[5]=0;
for(t=1;t<5;t++){
s1=6-t;
dx=bb[s1];
bb[s1-1]=gotobud[s1][dx+10];
}
for(s1=1;s1<6;s1++){
op[s1]=bb[s1]-bb[s1-1];
}
}
}
最終更新:2013年08月16日 23:45