Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

...我对照着一个ac的代码看了半天系统数据的时候还是wa了。。。救命啊2个钟头了!

Posted by dsfhlha at 2013-09-08 17:02:05 on Problem 1328
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator