Wednesday 21 September 2016

UVA 10773 - Back to Intermediate Math

Problem:UVA 10773 - Back to Intermediate Math
তোমাকে নদীর বেগ v, নৌকার বেগ u, এবং নদীর পাড়ের দুরুত্ত d, দেওয়া হল। সর্বনিম্ন সময় t1 (নদীর গতি উপেক্ষা করে),  এক পাড় থেকে অন্য পাড় সজাসজি যেতে সময় t2 বের করে t1-t2 বের করতে হবে।
এখন নদীর গতি অপেক্ষা করে  এক পাড় থেকে অন্য পাড় যেতে সময় সময় লাগবে t1=d/u;
এক পাড় থেকে অন্য পাড় সজাসজি যেতে সময় t2 বের করিঃ

চিত্র টা দেখি_

চিত্র থেকে বুঝা যাচ্ছে r=sqrt(u*u-v*v)
সুতরাং t2=d/sqrt(u*u-v*v)
এক্ষেত্রে লক্ষণীয় যে  u<v হলে error দেখাবে। কারন রুট এর ভিতরে negative হতে পারে না।
Code:
#include<bits/stdc++.h>

using namespace std;
int main()
{
    long long t,i,j;
    double t1,t2,t3,u,v,d;
    cin>>t;
    for(i=1; i<=t; i++)
    {
        cin>>d>>v>>u;
        {
            if(v>=u)
                cout<<"Case "<<i<<": "<<"can't determine\n";
            else
            {
                t1=(d/u);
                t2=(d/(sqrt(u*u-v*v)));
                //cout<<t1<<" "<<t2<<" "<<t1-t2<<endl;
                t3=t2-t1;
                if(t3<=0)
                    cout<<"Case "<<i<<": "<<"can't determine\n";
                else
                   {
                          cout<<"Case "<<i<<": ";
                printf("%.3lf\n",t3);}
            }
        }
    }
    return 0;
}

No comments:

Post a Comment