package line3;
import tool.*;
import java.util.HashMap;
public class pro {
int s,datanumber,sx;
String[] data=new String[50000];
String[] line=new String[50000];
String[] sta=new String[50000];
String[] com=new String[50000];
String[] geo=new String[50000];
int dicnumber;
String[] dic_com=new String[50000];
String[] dic_line=new String[50000];
String[] dic_geo=new String[50000];
int[] code=new int[50000];
int number_geo;
int[][] dis_line=new int[1000][1000];
int number_line;
int[][] chx=new int[1000][10000];
HashMap<String,Integer> map = new HashMap<String,Integer>();
public static void main(String[] args) {
pro t=new pro();
}
pro(){
readfile sub=new readfile();
sub.makedata("linec.txt","UTF-8");
data=sub.data;
datanumber=sub.datanumber;
for(s=1;s<datanumber+1;s++){
catchword sub8=new catchword();
sta[s]=sub8.makedata(data[s],"station");
line[s]=sub8.makedata(data[s],"line");
com[s]=sub8.makedata(data[s],"com");
geo[s]=sub8.makedata(data[s],"geo");
}
dicnumber=0;
int h,cc;
for(s=1;s<datanumber+1;s++){
cc=0;
for(sx=1;sx<dicnumber+1;sx++){
h=0;
if(com[s].equals(dic_com[sx]))h=h+1;
if(line[s].equals(dic_line[sx]))h=h+1;
if(h==2)cc=100;
}
if(cc<50)dicnumber=dicnumber+1;
if(cc<50)dic_line[dicnumber]=line[s];
if(cc<50)dic_com[dicnumber]=com[s];
}
for(s=1;s<dicnumber+1;s++){
System.out.println(s+","+dic_com[s]+","+dic_line[s]);
}
for(s=1;s<datanumber+1;s++){
for(sx=1;sx<dicnumber+1;sx++){
h=0;
if(com[s].equals(dic_com[sx]))h=h+1;
if(line[s].equals(dic_line[sx]))h=h+1;
if(h==2)code[s]=sx;
}
}
number_geo=0;
for(s=1;s<datanumber+1;s++){
cc=0;
for(sx=1;sx<number_geo+1;sx++){
if(geo[s].equals(dic_geo[sx]))cc=100;
}
if(cc<50)number_geo=number_geo+1;
if(cc<50)dic_geo[number_geo]=geo[s];
}
for(sx=1;sx<number_geo+1;sx++){
map.put(dic_geo[sx], sx);
}
System.out.println(dicnumber);
int s1,s2;
for(s=1;s<dicnumber+1;s++){
for(sx=1;sx<number_geo+1;sx++){
chx[s][sx]=0;
}}
for(s=1;s<datanumber+1;s++){
s1=code[s];
s2=map.get(geo[s]);
chx[s1][s2]=100;
}
int tx,n;
for(s=1;s<dicnumber+1;s++){
for(sx=1;sx<dicnumber+1;sx++){
dis_line[s][sx]=100;
}}
for(s=1;s<dicnumber;s++){
dis_line[s][s]=0;
}
for(s=1;s<dicnumber;s++){
for(sx=s+1;sx<dicnumber+1;sx++){
cc=0;
for(tx=1;tx<number_geo+1;tx++){
h=0;
if(chx[s][tx]>60)h=h+1;
if(chx[sx][tx]>60)h=h+1;
if(h==2)cc=100;
}
if(cc>50)dis_line[s][sx]=1;
if(cc>50)dis_line[sx][s]=1;
}}
int tr;
for(tr=1;tr<101;tr++){
for(s=1;s<dicnumber+1;s++){
for(sx=1;sx<dicnumber+1;sx++){
int maxd=dis_line[s][sx];
for(tx=1;tx<dicnumber+1;tx++){
int d1=dis_line[s][tx]+dis_line[sx][tx];
if(d1<maxd)maxd=d1;
}
dis_line[s][sx]=maxd;
}}
System.out.println(tr);
}
for(s=1;s<dicnumber+1;s++){
System.out.println(s+","+dic_line[s]);
}
System.out.println(dis_line[74][75]);
}}
最終更新:2015年05月06日 14:55