#include <stdio.h>
#define D 100
#define eps 1.0E-30

int main(){
  int filled[D][D];
  double inflow[D][D],cont[D][D];
  int R,C,a,b,brar,brac;
  double min,time;
  printf("Rad ? ");
  scanf("%d", &R);
  printf("Glas ? ");
  scanf("%d", &C);
  R--; C--;
  for(a=0;a<=R;a++) for(b=0;b<=a;b++) {
    filled[a][b]=0;
    cont[a][b]=0.0;
    inflow[a][b]=0.0;
  }
  inflow[0][0]=0.1;
  time=0.0;
  while(!filled[R][C]){
    min=1.0E30;
    for(a=0;a<=R;a++) for(b=0;b<=a;b++) {
      if((inflow[a][b]>eps) && (!filled[a][b]) && ((1.0-cont[a][b])/inflow[a][b]<min)) {
	min=(1.0-cont[a][b])/inflow[a][b];
	brar=a; brac=b;
      }
    }
    time+=min;
    filled[brar][brac]=1;
    cont[brar][brac]=1.0;
    for(a=0;a<=R;a++) for(b=0;b<=a;b++) {
      if(!filled[a][b]) cont[a][b]+=min*inflow[a][b];
      if(a>0) inflow[a][b]=(((b==0) || (!filled[a-1][b-1]))?0.0:inflow[a-1][b-1]/2.0) + (((b==a) || (!filled[a-1][b]))?0.0:inflow[a-1][b]/2.0);
    }
  }
  printf("Det tar %.3lf sekunder.\n", time);
  return 0;
}
