UVA Problem 10589 (Area) Solution

Problem Solving, UVa

 

 

#include <bits/stdc++.h>



using namespace std;



int main()



{

    int N,a,M,rr;

   

    double x,y;

   

    while(scanf("%d %d",&N,&a)!=EOF && N)

    {

        bool f = true;

        M = 0;

        rr = a*a;

       

        for(int i = 0;i<N;++i)

        {

            scanf("%lf %lf",&x,&y);

           

            f = true;

           

            if((x-0)*(x-0)+(y-0)*(y-0)>rr)   //(x1,y1)(x2,y2) bindu gula: (0,0)(0,0)

            f = false;                        //(0,a)(0,a);(a,0)(a,0);(a,a)(a,a)

            if((x-0)*(x-0)+(y-a)*(y-a)>rr)

            f = false;

            if((x-a)*(x-a)+(y-0)*(y-0)>rr)

            f = false;

            if((x-a)*(x-a)+(y-a)*(y-a)>rr)

            f = false;

           

            if(f)

            {

                M++;

            }

        }

       

        printf("%.5f\n",(double)M*(a*a)/N);

    }

   

    return 0;

}

 

0 Comments

You may find interest following article