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