uva11627

来源:互联网 发布:mac的usb接口没反应 编辑:程序博客网 时间:2024/06/06 05:38

区间问题。

#include<cstdio>#include<algorithm>using namespace std;const int maxn = 100000+10;struct node{    int x,y;} a[maxn];int T,n,vh,w,s,sj;int judge(int mid){    double x1,x2;    x1=a[n-1].x;    x2=a[n-1].x+w;    for(int i=n-2; i>=0; i--)    {        double qj=vh*1.0*(a[i+1].y-a[i].y)/mid;        x1-=qj;        x2+=qj;        x1=max(x1,a[i].x*1.0);        x2=min(x2,(a[i].x+w)*1.0);        if(x1-x2>1e-9)            return 0;    }    return 1;}int main(){    scanf("%d",&T);    while(T--)    {        int cnt=0;        scanf("%d %d %d",&w,&vh,&n);        for(int i=0; i<n; i++)            scanf("%d %d",&a[i].x,&a[i].y);        int l=0,r=1<<28;        while(l<r)        {            int mid=l+(r-l+1)/2;            if(judge(mid))l=mid;            else r=mid-1;        }        scanf("%d",&s);        for(int i=0; i<s; i++)        {            scanf("%d",&sj);            if(sj<=l)                cnt=max(cnt,sj);        }        if(cnt)            printf("%d\n",cnt);        else            printf("IMPOSSIBLE\n");    }    return 0;}


0 0