#include <stdio.h>
#include <string.h>
struct line
{
double x1, x2, y;
bool ex;
};
line l1, l;
int n;
double len;
int lineCnt;
line l2[30];
void CNT()
{
int i;
for(i = 0; i < lineCnt; i++)
{
if(l2[i].ex && len<l2[i].x2-l2[i].x1)
len=l2[i].x2-l2[i].x1;
}
}
void cut(line l1, int i)
{
if(l1.x1 <= l2[i].x1)
{
if(l1.x2<l2[i].x2 && l1.x2>l2[i].x1)
l2[i].x1=l1.x2;
if(l1.x2 >= l2[i].x2)
l2[i].ex=0;
}else
if(l1.x2 >= l2[i].x2)
{
if(l1.x1 <= l2[i].x2)
l2[i].x2=l1.x1;
}else
{
l2[lineCnt].x1=l1.x2, l2[lineCnt].x2=l2[i].x2, l2[lineCnt].ex=1;
l2[i].x2=l1.x1;
lineCnt++;
}
}
void func()
{
int i;
line shadow;
double r=(l1.y-l.y)/(l1.y-l2[0].y);
shadow.x1=l1.x2-(l1.x2-l.x1)/r;
shadow.x2=l1.x1+(l.x2-l1.x1)/r;
shadow.y=l2[0].y;
for(i = 0; i < lineCnt; i++)
{
if(l2[i].ex)
cut(shadow, i);
}
}
int main(){
while(scanf("%lf%lf%lf", &l1.x1, &l1.x2, &l1.y)==3)
{
if(l1.x1==0 && l1.x2==0 && l1.y==0)
break;
len=0;
scanf("%lf%lf%lf", &l2[0].x1, &l2[0].x2, &l2[0].y);
l2[0].ex=1;
lineCnt=1;
scanf("%d", &n);
int i;
for(i = 0; i < n; i++)
{
scanf("%lf%lf%lf", &l.x1, &l.x2, &l.y);
if(l.y<l1.y && l.y>=l2[0].y)
func();
}
CNT();
if(len>0)
printf("%.2f\n", len);
else
printf("No View\n");
}
return 0;
}
#include <string.h>
struct line
{
double x1, x2, y;
bool ex;
};
line l1, l;
int n;
double len;
int lineCnt;
line l2[30];
void CNT()
{
int i;
for(i = 0; i < lineCnt; i++)
{
if(l2[i].ex && len<l2[i].x2-l2[i].x1)
len=l2[i].x2-l2[i].x1;
}
}
void cut(line l1, int i)
{
if(l1.x1 <= l2[i].x1)
{
if(l1.x2<l2[i].x2 && l1.x2>l2[i].x1)
l2[i].x1=l1.x2;
if(l1.x2 >= l2[i].x2)
l2[i].ex=0;
}else
if(l1.x2 >= l2[i].x2)
{
if(l1.x1 <= l2[i].x2)
l2[i].x2=l1.x1;
}else
{
l2[lineCnt].x1=l1.x2, l2[lineCnt].x2=l2[i].x2, l2[lineCnt].ex=1;
l2[i].x2=l1.x1;
lineCnt++;
}
}
void func()
{
int i;
line shadow;
double r=(l1.y-l.y)/(l1.y-l2[0].y);
shadow.x1=l1.x2-(l1.x2-l.x1)/r;
shadow.x2=l1.x1+(l.x2-l1.x1)/r;
shadow.y=l2[0].y;
for(i = 0; i < lineCnt; i++)
{
if(l2[i].ex)
cut(shadow, i);
}
}
int main(){
while(scanf("%lf%lf%lf", &l1.x1, &l1.x2, &l1.y)==3)
{
if(l1.x1==0 && l1.x2==0 && l1.y==0)
break;
len=0;
scanf("%lf%lf%lf", &l2[0].x1, &l2[0].x2, &l2[0].y);
l2[0].ex=1;
lineCnt=1;
scanf("%d", &n);
int i;
for(i = 0; i < n; i++)
{
scanf("%lf%lf%lf", &l.x1, &l.x2, &l.y);
if(l.y<l1.y && l.y>=l2[0].y)
func();
}
CNT();
if(len>0)
printf("%.2f\n", len);
else
printf("No View\n");
}
return 0;
}