アットウィキロゴ

鉄道8

package trip;
 
 
public class pro {
 
    int number;
    int number_line;
    int[] a_line=new int[5000];
    int[] b_line=new int[5000];
    int[] dis_line=new int[5000];
     int s;
 
      int[] trip=new int[500];
     int number_trip;
 
 
    public static void main(String[] args) {
       pro test=new pro();
    }
    pro(){
 
        number=100;
        number_line=99;
 
        for(s=1;s<number_line+1;s++){
        a_line[s]=s;
        b_line[s]=s+1;
        dis_line[s]=1;
        }
 
        int k;
 
        for(k=1;k<1001;k++){
 
 
        trip[1]=fast();
        number_trip=1;
        int mode=0;
        while(mode<40){
        int n=search(trip[number_trip]);
 
        int ch=check(n);
        if(ch<50)number_trip=number_trip+1;
        if(ch<50)trip[number_trip]=n;
        if(ch>50)mode=100;
        }
 
         System.out.println(number_trip);
 
        f();
 
         System.out.println(number_line);
 
        }
 
 
    }
    void f(){
    int s,sx;
 
     for(s=1;s<number_trip;s++){
     for(sx=s+1;sx<number_trip+1;sx++){  
     count(s,sx);
       }}   
 
 
    }
    void count(int s1,int s2){
 
        int x1,x2,s;
        x1=trip[s1];
        x2=trip[s2];
 
        int h,cc;
        cc=0;
       for(s=1;s<number_line+1;s++){
       h=0;
       if(a_line[s]==x1)h=h+1; 
       if(b_line[s]==x2)h=h+1;
       if(h==2)cc=100;
       }
 
        for(s=1;s<number_line+1;s++){
       h=0;
       if(b_line[s]==x1)h=h+1; 
       if(a_line[s]==x2)h=h+1;
       if(h==2)cc=100;
       }
 
       if(cc<50){
           number_line=number_line+1;
        a_line[number_line]=x1;
        b_line[number_line]=x2;
           int d2=0;
       for(s=s1;s<s2;s++){
       int sx=point(trip[s],trip[s+1]);
       int d1=dis_line[sx];
       d2=d1+d2;
       }  
      dis_line[number_line]=d2;
       }    
 
 
 
 
    }
 
     int point(int sp1,int sp2){
 
        int s,sx,h;
        sx=0;
        for(s=1;s<number_line+1;s++){
       h=0;
       if(a_line[s]==sp1)h=h+1; 
       if(b_line[s]==sp2)h=h+1;
       if(h==2)sx=s;
       }
 
        return sx;
 
    }
 
 
    int check(int pp){
 
        int s,ch;
        ch=0;
    for(s=1;s<number_trip+1;s++){
    if(trip[s]==pp)ch=100;    
    }
 
 
 
    return ch;
    }
 
 
    int search(int pp){
 
        int sx,s;
        int[] z=new int[600];
        sx=0;
        for(s=1;s<number_line+1;s++){
 
        if(a_line[s]==pp)sx=sx+1; 
        if(a_line[s]==pp)z[sx]=b_line[s];
 
        }
 
        for(s=1;s<number_line+1;s++){
 
        if(b_line[s]==pp)sx=sx+1; 
        if(b_line[s]==pp)z[sx]=a_line[s];
        }
 
        int c;
        c=sx;
 
    double c1=c*Math.random();
    int c2=(int)Math.floor(c1)+1;
    int c3=z[c2];
 
 
 
 
 
        return c3;
 
 
    }
 
 
 
 
    int fast(){
 
        double m1=number*Math.random();
        int m2=(int)Math.floor(m1)+1;
 
        return m2;
    }
 
 
 
}
 
最終更新:2015年04月29日 08:11