Friday, 8 April 2016

বৃত্তের ভিতরে বিন্দু ( Point Inside Circle ) Codemarshal Problem Solution.

বৃত্তের ভিতরে বিন্দু ( Point Inside Circle )

CPU: 2s
Memory: 1024MB

তোমাকে একটি বিন্দুর স্থানাঙ্ক এবং একটি বৃত্তের কেন্দ্রের স্থানাঙ্ক এবং বৃত্তের ব্যাসার্ধ দেওয়া আছে। তোমাকে বলতে হবে, বিন্দুটি বৃত্তের ভিতরে অবস্থিত নাকি বাইরে। বিন্দুটি যদি বৃত্তের পরিধির উপর অবস্থিত হয়, তাহলেও বিন্দুটি বৃত্তের বাইরে বলেই ধরে নিতে পারো।
Given a co-ordinate of a point and the co-ordinate of the center of a circle and it's radius, you have to determine whether a point is strictly inside that circle or not. You should assume that if a point on the perimeter of the circle, then it is not considered to be inside of that circle.

ইনপুটের বর্ণনা

ইনপুট শুরু হবে একটি পূর্ণসংখ্যা T ( ১<=T<=১০০০০ ),দিয়ে, যেটা সমস্যাটির টেস্টকেসের সংখ্যা নির্দেশ করবে। প্রতিটি টেস্টকেসে পাঁচটি করে সংখ্যা থাকবে। এগুলো হল cx , cy ( বৃত্তের কেন্দ্রের স্থানাঙ্ক ), r ( বৃত্তের ব্যাসার্ধ ), px , py ( বিন্দুটির স্থানাঙ্ক ).
এখানে, ১ <= cx, cy , px , py , r <= ১০^৬

Input Specification

Input starts with an integer T ( 1<=T<=10000 ), denoting the number of test cases. Each case will contain 5 integers cx , cy ( the co-ordinate of the center of the circle ), r ( the radius of the circle ), px , py ( the co­ordinate of the point ).
Here, 1 <= ( cx , cy , px , py , r ) <= 10^6

আউটপুট এর বর্ণনা

ইনপুটের প্রতিটি টেস্টকেসের জন্য একটি করে লাইন আউটপুট দিতে হবে। প্রথমে থাকবে কেসের সংখ্যা। এরপর যদি প্রদত্ত বিন্দুটি বৃত্তের ভিতরে অবস্থিত হয় তাহলে প্রিণ্ট করতে হবে "yes", অন্যথায় প্রিণ্ট করতে হবে "no"। সঠিক ফরম্যাটটি বোঝার জন্য Sample তহ উদাহরণে দেয়া ইনপুট আর আউটপুট গুলো একবার করে দেখে নাও।

Output Specification

For each case, print the case number and if the point is strictly inside the circle, print "yes". Otherwise print "no" ( without the quotes ). See the sample input/output for more specification.

Sample

InputOutput
5 794 916 778 887 384 422 650 493 387 336 764 60 691 28 363 737 173 427 541 927 783 430 568 369 212Case 1: yes Case 2: yes Case 3: no Case 4: no Case 5: yes

দ্রষ্টব্য

এই সমস্যাটার কোড লেখার সময় float বা double টাইপের ভ্যারিয়েবল পরিহার করলে ভাল হয়।

Notes

Try to avoid using double and float type variables while coding this problem!

Solution:

#include<bits/stdc++.h>
using namespace std;
/*
    *
    * Prosen Ghosh
    * American International University - Bangladesh (AIUB)
    *
*/
int main(){

    int T;
    cin >> T;
    for(int t = 1; t <= T; t++){
        long long int cx,cy,px,py,r,d;
        cin >> cx >> cy >> r >> px >> py;
        d = sqrt(pow((cx - px),2) + pow((cy - py),2));
        if(d < r) cout << "Case " << t << ": yes" << endl;
        else cout << "Case " << t << ": no" << endl;
    }
    return 0;
}

2 comments:

  1. #include
    #include
    int main()
    {
    int i,n;
    scanf("%d",&n);
    if (n>=1 && n>=10000 ) {
    return 0;
    }
    for(i=1;i<=n;i++)
    {
    int x1,x2,y1,y2,dst,r;
    scanf("%d%d%d%d%d",&x1,&x2,&r,&y1,&y2);
    dst=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
    if(dst < r)
    printf("Case %d: yes\n",i);
    else
    printf("Case %d: no\n",i);
    }

    return 0;
    }

    bro,
    eta submit hoyna kno..

    ReplyDelete