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