import java.awt.Graphics;
import java.applet.Applet;
import java.awt.Color;
public class lwvoro extends java.applet.Applet{
  int x,y,labe;
  double mind;
  Color col1,col2,col3;
  int Naw;
  int takaaw,habaaw;
  int kaw,iaw,jaw;
  double alaw,beaw,al2aw,xcaw,ycaw,yyaw,phaw,thaw,minyaw,maxyaw;
  int rraw,xjaw;
  double a1raw,a2raw,yraw,eps2;
  int cou,coumax;
  int xI,yI;
  double ysyoki,yr,yr1,ff,ffbi,eps,stex,stey;
  double kou1,kou2,kou1b,kou2b;
  double ymraw,x2raw,y2raw;
  int x2rawI,y2rawI,rweaw;
  int yjawI,minyawI,maxyawI,x10awI,y10awI;
  double b1yaw,b2yaw,b3yaw,x0aw,x10aw,y10aw;
  double xsyoki,xr,xr1;
  double minddd,e12;
  int br2aw;
  String NS,habaS,takaS;
  double Nd,takad,habad;
  public double dou(String dous){
    double dou1;
    dou1 = (Double.valueOf(dous)).doubleValue();
    return dou1;
  }
  public double randaw(){
    double rand1aw;
    rand1aw=Math.random();
    return rand1aw;
  }
  public void init(){
    col1=Color.black;
    col2=Color.white;
    col3=Color.orange;
    takaS=getParameter("takap");
    habaS=getParameter("habap");
    NS=getParameter("Np");
    habad=dou(habaS);
    takad=dou(takaS);
    Nd=dou(NS);
    if(Nd==6){
      Nd=2+5*randaw();
    }
    habaaw=(int)habad;
    takaaw=(int)takad;
    Naw=(int)Nd;
  }
  double x1aw[]=new double[100];
  double y1aw[]=new double[100];
  double w1aw[]=new double[100];
  int xaw[]=new int[100];
  int yaw[]=new int[100];
  int waw[]=new int[100];
  double saw[]=new double[100];
  String sssaw[]=new String[100];
  public double jouaw(double aaw,double baw){
    double jou1aw;
    jou1aw=Math.pow(aaw,baw);
    return jou1aw;
  }
  public double dis(double xa1,double ya1,double xa2,double ya2){
    double disdis;
    disdis=jouaw(jouaw(xa1-xa2,2.0)+jouaw(ya1-ya2,2.0),0.5);
    return disdis;
  }

  public double dis2(double xa12,double ya12,double xa22,double ya22){
    double disdis2;
    disdis2=jouaw(xa12-xa22,2.0)+jouaw(ya12-ya22,2.0);
    return disdis2;
  }

  public double ab(double ab1,double ab2){
    double abw;
    if(ab1>ab2){
      abw=ab1-ab2;
    }
    else{
      abw=ab2-ab1;
    }
    return abw;
  }

  public double abm(double ab1,double ab2,double wab){
    double abw;
    if(ab1>ab2){
      abw=jouaw(ab1-ab2,wab);
    }
    else{
      abw=-jouaw(ab2-ab1,wab);
    }
    return abw;
  }

  public double disw(double xa1,double ya1,double xa2,double ya2,double wqwq){
    double disdisw;
    disdisw=jouaw(jouaw(ab(xa1,xa2),wqwq)+jouaw(ab(ya1,ya2),wqwq),1/wqwq);
    return disdisw;
  }

  public double disw2(double xa1q,double ya1q,double xa2q,double ya2q,double wqwqq){
    double disdisw2;
    disdisw2=jouaw(jouaw(ab(xa1q,xa2q),wqwqq)+jouaw(ab(ya1q,ya2q),wqwqq),1/wqwqq-1);
    return disdisw2;
  }

  public void paint(java.awt.Graphics g){
    g.setColor(col1);
    g.fillRect(1,1,habaaw,takaaw);
    for(kaw=1;kaw<=Naw;kaw++){
      x1aw[kaw-1]=randaw()*(habaaw-30)+15;
      y1aw[kaw-1]=randaw()*(takaaw-30)+15;
      w1aw[kaw-1]=3*randaw();
      xaw[kaw-1]=(int)(x1aw[kaw-1]+0.5);
      yaw[kaw-1]=(int)(y1aw[kaw-1]+0.5);
      waw[kaw-1]=(int)(w1aw[kaw-1]+0.5);
      sssaw[kaw-1]=""+w1aw[kaw-1];
      g.setColor(col3);
      g.fillOval(xaw[kaw-1]-2,yaw[kaw-1]-2,4,4);
      g.drawString(sssaw[kaw-1],xaw[kaw-1]-3,yaw[kaw-1]-3);
      w1aw[kaw-1]=w1aw[kaw-1];
    }
    g.setColor(col2);
    for(iaw=1;iaw<=Naw-1;iaw++){
      for(jaw=iaw+1;jaw<=Naw;jaw++){
        eps=0.01;
        eps2=0.1;
        coumax=100;
        for(ysyoki=(y1aw[iaw-1]+y1aw[jaw-1])/2.0-100.0;ysyoki<(y1aw[iaw-1]+y1aw[jaw-1])/2.0+100.0;ysyoki=ysyoki+100.0){
          for(xI=0;xI<=habaaw;xI++){
            yr=ysyoki;
            yr1=-100;
            ff=100;
            cou=0;
            while(dis(ff,0,0,0)>eps && cou<coumax){
              yr1=yr;
              kou1=disw(xI,yr,x1aw[iaw-1],y1aw[iaw-1],w1aw[iaw-1]);
              kou2=disw(xI,yr,x1aw[jaw-1],y1aw[jaw-1],w1aw[jaw-1]);
              ff=kou1-kou2;
              kou1b=abm(yr,y1aw[iaw-1],w1aw[iaw-1]-1)*disw2(xI,yr,x1aw[iaw-1],y1aw[iaw-1],w1aw[iaw-1]);
              kou2b=abm(yr,y1aw[jaw-1],w1aw[jaw-1]-1)*disw2(xI,yr,x1aw[jaw-1],y1aw[jaw-1],w1aw[jaw-1]);
              ffbi=kou1b-kou2b;
              yr=yr-ff/ffbi;
              cou++;
            }//wend
            if(dis(ff,0,0,0)<eps){
              br2aw=0;
              if(kou1/kou2>1.0+eps2 || kou2/kou1>1.0+eps2){
                  br2aw++;
              }
              if(br2aw==0){
                  minddd=disw(xI,yr,x1aw[iaw-1],y1aw[iaw-1],w1aw[iaw-1]);
                  for(kaw=1;kaw<=Naw;kaw++){
                      if(kaw!=iaw && kaw!=jaw){
                          e12=disw(xI,yr,x1aw[kaw-1],y1aw[kaw-1],w1aw[kaw-1]);
                          if(e12<minddd){
                              br2aw++;
                              break;
                          }
                      }//k!=i||j
                  }//next kaw
              }
              if(br2aw==0){
                  g.drawLine((int)xI,(int)yr,(int)xI,(int)yr);
              }
            }//dis(ff<eps
          }//next xI
        }//next ysyoki
//y•ûŒü‚Å•`‰æ
        for(xsyoki=(x1aw[iaw-1]+x1aw[jaw-1])/2.0-100.0;xsyoki<(x1aw[iaw-1]+x1aw[jaw-1])/2.0+100.0+1;xsyoki=xsyoki+100.0){
          for(yI=0;yI<=takaaw;yI++){
            xr=xsyoki;
            xr1=-100;
            ff=100;
            cou=0;
            while(dis(ff,0,0,0)>eps && cou<coumax){
              xr1=xr;
              kou1=disw(xr,yI,x1aw[iaw-1],y1aw[iaw-1],w1aw[iaw-1]);
              kou2=disw(xr,yI,x1aw[jaw-1],y1aw[jaw-1],w1aw[jaw-1]);
              ff=kou1-kou2;
              kou1b=abm(xr,x1aw[iaw-1],w1aw[iaw-1]-1)*disw2(xr,yI,x1aw[iaw-1],y1aw[iaw-1],w1aw[iaw-1]);
              kou2b=abm(xr,x1aw[jaw-1],w1aw[jaw-1]-1)*disw2(xr,yI,x1aw[jaw-1],y1aw[jaw-1],w1aw[jaw-1]);
              ffbi=kou1b-kou2b;
              xr=xr-ff/ffbi;
              cou++;
            }//wend
            if(dis(ff,0,0,0)<eps){
              double minddd,e12;
              br2aw=0;
              if(kou1/kou2>1.0+eps2 || kou2/kou1>1.0+eps2){
                  br2aw++;
              }
              if(br2aw==0){
                  minddd=disw(xr,yI,x1aw[iaw-1],y1aw[iaw-1],w1aw[iaw-1]);
                  for(kaw=1;kaw<=Naw;kaw++){
                      if(kaw!=iaw && kaw!=jaw){
                          e12=disw(xr,yI,x1aw[kaw-1],y1aw[kaw-1],w1aw[kaw-1]);
                          if(e12<minddd){
                              br2aw++;
                              break;
                          }
                      }//k!=i||j
                  }//next k
              }
              if(br2aw==0){
                  g.drawLine((int)xr,(int)yI,(int)xr,(int)yI);
              }
            }//dis(ff<eps
          }//next xI
        }//next ysyoki
      }//next jaw
    }//next iaw
    g.setColor(col2);
    g.drawLine(habaaw-150,10,habaaw-50,10);
    g.drawLine(habaaw-150,5,habaaw-150,15);
    g.drawLine(habaaw-100,5,habaaw-100,10);
    g.drawLine(habaaw-50,5,habaaw-50,15);
    g.drawString("0",habaaw-158,13);
    g.drawString("100",habaaw-48,13);
    g.drawString("N="+Naw,15,15);
  }
}