/****************************************************************
题意:给你两个函数f,g,要你求函数h=max(f,g),的最小值;函数f和g的图像只有平行于x轴的线
思路:扫描一遍就ok了
*****************************************************************/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
double fv[111],fl[111],gv[111],gl[111];
void input(double *v,double *l,int n)
{
int i;
double cnt=0.0;
for(i=0;i<n;i++)
{
scanf("%lf %lf",&v[i],&l[i]);
l[i]+=cnt;
cnt=l[i];
}
}
int main()
{
int fn,gn;
while(scanf("%d",&fn)!=EOF)
{
input(fv,fl,fn);
scanf("%d",&gn);
input(gv,gl,gn);
int i=0,j=0;
double ans=max(gv[0],fv[0]);
double pos=0.0;
while(i<fn && j<gn)
{
ans=min(ans,max(fv[i],gv[j]));
//printf("i=%d j=%d fl=%f gl=%f ans=%f\n",i,j,fl[i+1],gl[j+1],ans);
if(fl[i]<gl[j]) i++;
else j++;
}
printf("%.3f\n",ans);
}
return 0;
}
uva972 Horizon Line 扫描线水题
最新推荐文章于 2018-08-24 13:06:29 发布