アットウィキロゴ

こーどkぁ

class pro{

String str;
int s,sx,t,tx,txs,strlong,slong,tlong;
String[][] ph=new String[500][11];
String[] dic=new String[500];
int[][] nph=new int[500][11];
int[] p1=new int[500];
int[] p2=new int[500];
int[] op=new int[500];
int mx,mxs;
int dicnumber,qnumber;
int sx1,sx2,sxs;
double[][] v=new double[500][11];
int[][] gototx=new int[500][11];
double[] p=new double[500];
double[] q=new double[500];
int h;
double v1,maxv;
int z,xx;


public static void main(String args[]){
pro test=new pro();
}

pro(){

dicnumber=0;
qnumber=0;
p[0]=1;
q[0]=1;

str="東日本大震災による地盤沈下で道路など";
strlong=str.length();

System.out.println(strlong);

for(s=1;s<strlong+1;s++){
slong=s;
if(slong>10)slong=10;
for(sx=1;sx<slong+1;sx++){
ph[s][sx]=str.substring(s-sx,s);
}
}

for(s=1;s<strlong+1;s++){
slong=s;
if(slong>10)slong=10;
for(sx=1;sx<slong+1;sx++){
mxs=0;
for(mx=1;mx<dicnumber+1;mx++){
if(ph[s][sx].equals(dic[mx]))mxs=mx;
}
nph[s][sx]=mxs;
}
}


slong=strlong;
if(slong>10)slong=10;
for(s=1;s<slong+1;s++){
sx=nph[s][s];
v[s][s]=q[sx];
}

sx1=nph[1][1];
sx2=nph[2][1];

sxs=0;
for(sx=1;sx<qnumber+1;sx++){
h=0;
if(p1[sx]==sx1)h=h+1;
if(p2[sx]==sx2)h=h+1;
if(h==2)sxs=sx;
}

System.out.println(sxs);

v[2][1]=q[sxs]+v[1][1];
gototx[2][1]=1;

for(s=3;s<strlong+1;s++){
slong=s-1;
if(slong>10)slong=10;
for(sx=1;sx<slong+1;sx++){
t=s-sx;
tlong=t;
if(tlong>10)tlong=10;
maxv=-999;
txs=0;  
for (tx=1;tx<tlong+1;tx++){
mxs=0;
for(mx=1;mx<qnumber+1;mx++){
h=0;
if(p1[mx]==nph[t][tx])h=h+1;
if(p2[mx]==nph[s][sx])h=h+1;
if(h==2)mxs=mx;
}
v1=p[mxs]+v[t][tx];
if(v1>maxv)txs=tx;  
if(v1>maxv)maxv=v1;
}
gototx[s][sx]=txs;
v[s][sx]=maxv;  
}
}

s=strlong;
maxv=-999;
sxs=0;
slong=strlong;
if(slong>10)slong=10;
for(sx=1;sx<slong+1;sx++){
if(v[s][sx]>maxv)sxs=sx;
if(v[s][sx]>maxv)maxv=v[s][sx];
}

System.out.println(sxs);

System.out.println(maxv);

s=strlong;
sx=sxs;  
z=s-sx;
xx=1;
op[xx]=s;
while(z>0){
t=s-sx;
tx=gototx[s][sx];
s=t;
sx=tx;
xx=xx+1;  
z=s-sx;
op[xx]=s;
}

for(s=1;s<xx+1;s++){
System.out.println(op[s]);
}



}
}
最終更新:2011年05月30日 13:01