https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1714
এখন ,এরকম সমস্যার সম্মুখীন আমরা এর আগেও হয়েছি , অনেকবার । মনে আছে কি ?? ইন্টারমিডিয়েটে থাকতে , ফিজিক্সে এরকমের অনেক প্রোবলেম দেয় থাকতো .। ।
চলো , দেখি এবার - আসলে কাহিনী হচ্ছে টা কি ??????
তোমাকে নদীর বেগ v, নৌকার বেগ u, এবং নদীর পাড়ের দুরুত্ত d, দেওয়া থাকবে ইনপুটে । তোমায় প্রিন্ট করতে হবে সর্বনিম্ন পথে যেতে যে সময় লাগে ??? এবং , সর্বনিম্ন সময়ে যে পথ পাড়ি দেয়া যায় - এই দুই সময়ের মাঝে'র ডিফারেন্স ।।
চিত্র থেকে বুঝা যাচ্ছে r=sqrt(u*u-v*v) ।
সুতরাং , সর্বনিম্ন পথে যেতে সময় t2=d/sqrt(u*u-v*v) ।
এক্ষেত্রে লক্ষ রাখতে হবে যে u<v হলে error দেখাবে। কারন রুট ওভার এর ভিতরে মান negative হতে পারে না।
যাই হোক , সুত্রগুলো তো বোঝা শেষ - এবার খুবই সাবধানে কোড দেখে ফেলি চলো ---
#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;
}
এখন ,এরকম সমস্যার সম্মুখীন আমরা এর আগেও হয়েছি , অনেকবার । মনে আছে কি ?? ইন্টারমিডিয়েটে থাকতে , ফিজিক্সে এরকমের অনেক প্রোবলেম দেয় থাকতো .। ।
চলো , দেখি এবার - আসলে কাহিনী হচ্ছে টা কি ??????
তোমাকে নদীর বেগ v, নৌকার বেগ u, এবং নদীর পাড়ের দুরুত্ত d, দেওয়া থাকবে ইনপুটে । তোমায় প্রিন্ট করতে হবে সর্বনিম্ন পথে যেতে যে সময় লাগে ??? এবং , সর্বনিম্ন সময়ে যে পথ পাড়ি দেয়া যায় - এই দুই সময়ের মাঝে'র ডিফারেন্স ।।
এখন নদীর গতি অপেক্ষা করে এক পাড় থেকে অন্য পাড় যেতে সরবনিম্ন সময় লাগবে t1=d/u;
এক পাড় থেকে অন্য পাড় সজাসজি ( সর্বনিম্ন পথে ) যেতে সময় t2 বের করিঃ
সুতরাং , সর্বনিম্ন পথে যেতে সময় t2=d/sqrt(u*u-v*v) ।
এক্ষেত্রে লক্ষ রাখতে হবে যে u<v হলে error দেখাবে। কারন রুট ওভার এর ভিতরে মান negative হতে পারে না।
যাই হোক , সুত্রগুলো তো বোঝা শেষ - এবার খুবই সাবধানে কোড দেখে ফেলি চলো ---
#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