Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:1A贴个代码In Reply To:1A贴个代码 Posted by:wotok at 2016-02-19 22:34:13 > #include <iostream> > #include <cstring> > #include <stdio.h> > #include <algorithm> > #include <cmath> > #include <map> > #include <vector> > using namespace std; > > int n; > double d; > struct Node{ > double l,r; > }node[1010]; > bool cmp(const Node& x, const Node& y) { > if(fabs(x.r - y.r) < 1e-5) { > return x.l < y.l; > } > return x.r < y.r; > } > int main() { > int C = 1; > while(scanf("%d%lf",&n,&d),n + d) { > double rmax = -0x3f3f3f3f; > bool ok = true; > for(int i = 0;i < n;i ++) { > double x,y; > scanf("%lf%lf",&x,&y); > if(d < y) { > ok = false; > continue; > } > double dx = sqrt(d * d - y * y); > node[i].r = x + dx; > node[i].l = x - dx; > rmax = max(rmax,node[i].r); > } > > if(ok == false) { > printf("Case %d: %d\n",C++,-1); > continue; > } > sort(node,node+n,cmp); > int ret = 0; > int index = 0; > double end; > do { > end = node[index].r; > while(index < n && (node[index].l < end || fabs(node[index].l - end) < 1e-5)) { > index ++; > } > ret ++; > if(index >= n) { > break; > } > }while(end < rmax || fabs(end-rmax) > 1e-5); > printf("Case %d: %d\n",C++,ret); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator