Radar Installation(贪心,sort)
在poj上C++可以AC,但G++不行。杭电上更是好多的TLE,结果把cin改成scanf便可以轻松AC。
#include <iostream> #include <algorithm> #include <stdio.h> #include <cstring> #include <cmath> using namespace std; #define N 1010 structx_y { double x,y; }; bool greater_(x_y ex1,x_y ex2) { return ex1.x<ex2.x; } int main() { double d1; int n,k=1,i,j; while (scanf("%d%lf",&n,&d1)!=EOF) { if (n==0 && d1==0) break; x_y loc [N]; double left[N],right[N],a,b,pi,temp; int counter=1,flag=0; for (i=0;i<n;i++) { scanf("%lf%lf",&a,&b); loc[i].x=a; loc[i].y=b; if(b>d1) flag=1; } if(flag) { printf("Case %d: %d\n",k,-1); k++; continue; } sort (loc,loc+n,greater_); for (j=0;j<n;j++) { pi= d1*d1-loc[j].y*loc[j].y; left[j]=loc[j].x - sqrt(pi); right[j]=loc[j].x + sqrt(pi); } temp=right[0]; for (j=1;j<n;j++) { if (temp<left[j]) { temp=right[j]; counter++; } else { if (temp>right[j]) { temp=right[j]; } } } printf("Case %d: %d\n",k,counter); k++; } return 0; }