import java.awt.Graphics;
import java.applet.Applet;
import java.awt.Color;
public class cwvoro 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,eps2;
  int cou,coumax;
  double xsyoki,xr,xr1;
  int xI,yI;
  double ysyoki,yr,yr1,ff,ffbi,eps,stex,stey;
  double kou1,kou2,kou1b,kou2b;
  double minddd,e12;
  int rraw,xjaw;
  double a1raw,a2raw,yraw;
  double ymraw,x2raw,y2raw;
  int x2rawI,y2rawI,rweaw;
  int yjawI,minyawI,maxyawI,x10awI,y10awI;
  double b1yaw,b2yaw,b3yaw,x0aw,x10aw,y10aw;
  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+4*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];
  double u1aw[]=new double[100];
  int xaw[]=new int[100];
  int yaw[]=new int[100];
  int waw[]=new int[100];
  int uaw[]=new int[100];
  double saw[]=new double[100];
  String sssaw[]=new String[100];
  String ssuaw[]=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 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]=1+11*randaw();
      u1aw[kaw-1]=1+11*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);
      uaw[kaw-1]=(int)(u1aw[kaw-1]+0.5);
      sssaw[kaw-1]=""+waw[kaw-1];
      ssuaw[kaw-1]=""+uaw[kaw-1];
      g.setColor(col2);
      g.drawString(sssaw[kaw-1],xaw[kaw-1]-3,yaw[kaw-1]-3);
      g.fillOval(xaw[kaw-1]-2,yaw[kaw-1]-2,4,4);
      g.setColor(col3);
      g.drawString(ssuaw[kaw-1],xaw[kaw-1]+3,yaw[kaw-1]+13);
    }
    g.setColor(col2);
    for(iaw=1;iaw<=Naw-1;iaw++){
    //  g.drawString("i="+iaw,15,30+15*iaw);
      for(jaw=iaw+1;jaw<=Naw;jaw++){
        eps=0.01;
        eps2=0.1;
//        stex=habaaw/4;
  //      stey=takaaw/4;
        coumax=50;
        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=(dis(xI,yr,x1aw[iaw-1],y1aw[iaw-1])/w1aw[iaw-1])-u1aw[iaw-1];
              kou2=(dis(xI,yr,x1aw[jaw-1],y1aw[jaw-1])/w1aw[jaw-1])-u1aw[jaw-1];
              ff=kou1-kou2;
              kou1b=(yr-y1aw[iaw-1])/(dis(xI,yr,x1aw[iaw-1],y1aw[iaw-1])*w1aw[iaw-1]);
              kou2b=(yr-y1aw[jaw-1])/(dis(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=(dis(x1aw[iaw-1],y1aw[iaw-1],xI,yr)/w1aw[iaw-1])-u1aw[iaw-1];
                  for(kaw=1;kaw<=Naw;kaw++){
                      if(kaw!=iaw && kaw!=jaw){
                          e12=(dis(x1aw[kaw-1],y1aw[kaw-1],xI,yr)/w1aw[kaw-1])-u1aw[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=(dis(xr,yI,x1aw[iaw-1],y1aw[iaw-1])/w1aw[iaw-1])-u1aw[iaw-1];
              kou2=(dis(xr,yI,x1aw[jaw-1],y1aw[jaw-1])/w1aw[jaw-1])-u1aw[jaw-1];
              ff=kou1-kou2;
              kou1b=(xr-x1aw[iaw-1])/(dis(xr,yI,x1aw[iaw-1],y1aw[iaw-1])*w1aw[iaw-1]);
              kou2b=(xr-x1aw[jaw-1])/(dis(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){
              br2aw=0;
              if(kou1/kou2>1.0+eps2 || kou2/kou1>1.0+eps2){
                  br2aw++;
              }
              if(br2aw==0){
                  minddd=(dis(x1aw[iaw-1],y1aw[iaw-1],xr,yI)/w1aw[iaw-1])-u1aw[iaw-1];
                  for(kaw=1;kaw<=Naw;kaw++){
                      if(kaw!=iaw && kaw!=jaw){
                          e12=(dis(x1aw[kaw-1],y1aw[kaw-1],xr,yI)/w1aw[kaw-1])-u1aw[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);
  }
}