Sunday, 20 September 2015

UVA - 1388 Graveyard ( UVALive - 3708, POJ - 3154, Regionals 2006 >> Europe - Northeastern)

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / uva / uvalive / spoj), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010


int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int tc, kk=1, n, m;
    string s;
    char ch;
    while(cin>>n>>m)
    {
        double length = 10000.0, adjDist, incr;
        vector<double>first;
        vector<double>second;
        adjDist = length/(double)n;
        incr=0.0;
        for(int i=0;i<n;i++)
        {
            first.push_back(incr);
            incr+=adjDist;
        }
        m+=n;
        adjDist=length/(double)m;
        incr=0.0;
        for(int i=0;i<m;i++)
        {
            second.push_back(incr);
            incr+=adjDist;
        }
        second.push_back(20000.0);
        double tot=0.0;
        for(int i=0, j=0;i<n && j<m;i++,j++)
        {
            while(fabs(second[j]-first[i])>fabs(second[j+1]-first[i])+1e-9)
                j++;
            tot+=fabs(second[j]-first[i]);
        }

        cout<< setprecision(6)<<fixed<<tot<<"\n";
    }
return 0;
}

No comments:

Post a Comment