| ||||||||||
| 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 | |||||||||
...我对照着一个ac的代码看了半天系统数据的时候还是wa了。。。救命啊2个钟头了!#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream> //哪里错了!!
using namespace std;
const int maxn = 1000;
struct Point
{
double l, r;
int x, y;
} line[maxn];
int cmp(const void *a, const void *b)
{
return (*(Point*)a).x > (*(Point*)b).x;
}
int main()
{
int n, d;
int t=0;
while(cin >> n >> d && (n!=0 || d!=0))
{
t++;
int flag=1;
int ans = 0;
for(int i=0; i<n; i++)
{
scanf("%d%d", &line[i].x, &line[i].y);
if(line[i].y>d ||d<0) flag=0;
}
if(flag)
{
qsort(line, n, sizeof(line[0]), cmp);
for(int i=0; i<n; i++)
{
double xx = (double)sqrt((double)d*d-line[i].y*line[i].y);
line[i].l = line[i].x-xx;
line[i].r = line[i].x+xx;
}
double now=line[0].r;
ans++;
for(int i=1; i<n; i++)
{
// printf("\n ans= %d now = %lf line[i].l=%lf \n", ans, now, line[i].l);
if(now>line[i].r) { now=line[i].r;}
else if(now<line[i].l)
{
ans++;
now=line[i].r;
}
}
}
else ans=-1;
printf("Case %d: %d\n\n", t, ans);
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator