本文主要是介绍uva 1421 Archery,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define eps 1e-6
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)>(y)?(y):(x))
using namespace std;
struct node
{double l,r,h;
}line[5050];
int n;
int ok(double x)
{double L=atan2(line[0].h,line[0].r-x);double R=atan2(line[0].h,line[0].l-x);for(int i=1;i<n;i++){double L1=atan2(line[i].h,line[i].r-x);double R1=atan2(line[i].h,line[i].l-x);if(L-R1>eps)return -1;if(L1-R>eps)return 1;L=MAX(L,L1);R=MIN(R,R1);}return 0;
}
bool cmp(const node &a,const node &b)
{return a.h<b.h;
}
int main()
{int T;double w; scanf("%d",&T);while(T--){scanf("%lf%d",&w,&n);for(int i=0;i<n;i++)scanf("%lf%lf%lf",&line[i].h,&line[i].l,&line[i].r);sort(line,line+n,cmp);doub
这篇关于uva 1421 Archery的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!