Saturday, January 26, 2019

Lightoj 1178 solution in bangla

Lightoj 1178 solution in bangla

Lightoj 1178 : Problem Link


প্রবলেমটিতে আমাদেরকে ট্রাপেজিয়ামের চারটি বাহুর দৈর্ঘ্য দেয়া আছে। আমাদেরকে ট্রাপেজিয়ামের ক্ষেত্রফল বের করতে হবে ।
আমরা জানি ,ট্রাপেজিয়ামের ক্ষেত্রফলের সূত্র হলো =১/২ * সমান্তরাল বাহুদ্বয়ের যোগফল * সমান্তরাল বাহুদ্বয়ের মধ্যবর্তী দুরত্ব ।
অর্থাৎ area=1/2*(a*c)*h
এখানে h হলো a এবং c এর মধ্যবর্তী দুরত্ব ।
এখানে আমরা a এবং c এর মান জানি । কিন্তু h  এর মান জানি না ।তাই আমাদেরকে এখন h  এর মান বের করতে হবে ।
এখন ,আমরা C থেকে AB বরাবর লম্ব CP নিই । আর, D থেকে AB বরাবর লম্ব DQ নিই ।
এখানে , CP=DQ=h
PQ=c
 AP+BQ=a-c
AP=x
BQ=a-c-x
এখন আমরা ত্রিভুজ APC এবং BDQ তে পীথাগোরাসের উপপাদ্য প্রয়োগ করে পাই ।
ত্রিভূজ APC এ ,
AC*AC = AP*AP +h*h
or, d*d=x*x+h*h  (মান বসিয়ে)
or, h*h=d*d - x*x..........(১)

ত্রিভূজ BDQ এ,
BD*BD =  BQ*BQ +DQ*DQ
or, b*b=(a-c-x)*(a-c-x) + h*h ( মান বসিয়ে)
or ,h*h=b*b - (a-c-x)*(a-c-x) ...........(২)

সমীকরণ ১ এবং ২ হতে পাই,
d*d - x*x = b*b - (a-c-x)*(a-c-x)              [(a+b+c)*(a+b+c)=a*a+b*b+c*c+2*a*b+2*a*c+2*b*c ]

or, d*d - x*x = b*b - (a*a+c*c+x*x -2*a*c - 2*a*x+2*c*x)

or, d*d - x*x = b*b - a*a - c*c - x*x + 2*a*c + 2*a*x - 2*c*x

or, d*d = b*b - a*a - c*c  + 2*a*c + 2*a*x - 2*c*x

or, 2*a*x - 2*c*x = d*d - b*b + a*a + c*c  - 2*a*c

or, x=(d*d - b*b + a*a + c*c  - 2*a*c) / (2*a - 2*c)

এখন আমরা x পেয়ে গেলাম । আমাদেরকে এখন h বের করতে হবে ।
সমীকরণ (১) হতে পাই ,
h*h=d*d - x*x
এখন x এর মান বসিয়ে পাই ,

h*h=d*d -((d*d - b*b + a*a + c*c  - 2*a*c) / (2*a - 2*c))*(d*d - b*b + a*a + c*c  - 2*a*c) / (2*a - 2*c))

or, h=sqrt(d*d -((d*d - b*b + a*a + c*c  - 2*a*c) / (2*a - 2*c))*(d*d - b*b + a*a + c*c  - 2*a*c) / (2*a - 2*c)))
এখানে আমরা সবগুলোর মানই জানি ।
অতঃপর এই h  এর মান দিয়ে সহজেই ট্রাপেজিয়ামের ক্ষেত্রফল বের করতে পারবো ।
Source Code : SourceCodeLink


Share:

Friday, January 25, 2019

Lightoj 1072 solution in bangla

Lightoj 1072 solution in bangla

Problem Link: Lightoj 1072



প্রবেলমটিতে আমাদেরকে বাইরের বৃত্তের ব্যাসার্ধ এবং কতটি  বৃত্ত  আছে বাইরের বড় বৃত্তের ভিতরে সেই বৃত্তের সংখ্যা  দেয়া আছে । আমাদেরকে  ভিতরের ছোট  বৃত্তটির ব্যাসার্ধ বের করতে হবে।
আমরা জানি যে, একটি পূর্ণ বৃত্ত ৩৬০ ডিগ্রি হয়ে থাকে। 
উদাহরণ থেকেই জানা যাক,



ভিতরের ছয়টি বৃত্ত বাইরের বড় বৃত্তটিকে ৬ টি ভাগে ভাগ করেছে।  

তাহলে ভিতরের একটি বৃত্তের পরিধির সাথে বাইরের বড় বৃত্তের কেন্দ্র কত ডিগ্রী কোণ তৈরি করে??




তা হবে ৩৬০ কে n  দিয়ে ভাগ করলে যতো হয় ততো। 



আর আমরা যদি বলি  ভিতরের বৃত্তের কেন্দ্র এবং পরিধির সাথে  বাইরের বড় বৃত্তের কেন্দ্রটি কত ডিগ্রী কোণ তৈরি করে??

360
2*n
or, 180/n
or,   π/n


 এখন শুধু একটি ত্রিকোণোমিতি জানলেই হবে ।
আমরা কোণ পেয়ে গেলাম , θ = π/n;
Sin θ কে লিখা যায় লম্ব / অতিভুজ হিসেবে ।
এখানে লম্ব  r, আর অতিভুজ  R-r, 
R হলো বাইরের বৃত্তের ব্যাসার্ধ আর r হলো ভিতরের বৃত্তের ব্যাসার্ধ ।

Sin θ = r/(R-r)
or, Sin(PI/n) = r/(R-r)
or,  r = sin(PI/n)*(R-r) 
or,  r= (R*sin(PI/n)) – (r*sin(PI/n))
or,  r + r*sin(PI/n)  = R*sin(PI/n)
or,  r(1+sin(PI/n)) =R*sin(PI/n)
or,  r=(R*sin(PI/n)) / (1+sin(PI/n))
তাহলে আমরা পেয়ে ভিতরের ছোট বৃত্তের ব্যাসার্ধ ।

Source Code:

এই প্রবলেমটির মতো একই রকম আরেকটি প্রবলেম ।
Problem Link :  codeforces 1100 C

Source Code : SourceCodeLink




Share:

Monday, January 7, 2019

Lightoj 1331 solution in bangla

Sajib's Blog

 

Lightoj 1331 Ajent J 

Problem Link

Click here to see the discussion in English

হৃতিক রোশানের ধুম ২ সিনেমাতে ডায়মন্ড চুরির  দৃশ্যটি অনেকেই দেখেছো । Lightoj এর 1331 নাম্বার প্রবলেমটি একটি ডায়মন্ড চুরি নিয়ে। 

এখানে একজন এজেন্ট 'J ' আছে, যে কিনা মিউজিয়াম ডায়মন্ডটি চুরি করতে চায় । যদিও এই চুরিটা করা এতোটা সহজ নয়। কারণ,এখানে ৩টি বৃত্তাকার লেজার স্ক্যানার আছে, যেগুলো অনবরত ঘুরছে।স্ক্যানার ৩টি এমনভাবে বসানো যাতে বৃত্তাকার স্ক্যানার ৩টি চিত্রের মতো প্রতিটিই বাহ্যিকভাবে এক অপরকে স্পর্শ করে। আর ডায়মন্ড আছে সেই ৩টি বৃত্তাকার স্ক্যানার এর মাঝখানে রাখা হয়েছে।এখন আমাদেরকে সেই আবদ্ধ স্থানটি (রঙিন এরিয়া) পরিমাপ করতে হবে।যেখানে আমাকে ৩টি বৃত্তাকার স্ক্যানার এর ব্যাসার্ধ দেয়া আছে R1,R2,R3 ।

তো আমরা কিভাবে সমস্যাটি সমাধান করবো  ?

এই সমাধানের জন্য আমাদেরকে একটুখানি জ্যামিতির জ্ঞান থাকলেই হবে ।

প্রথমত ,আমরা যদি প্রতিটি বৃত্তের কেন্দ্রকে অপর দুটি বৃত্তের কেন্দ্রের সাথে যোগ করি ,তবে আমরা একটি ত্রিভুজ পাবো নিচের চিত্রের মতো । এখন শুধু ত্রিভুজের ক্ষেত্রফল থেকে , ত্রিভুজের মধ্যে অবস্থিত বৃত্তের অংশগুলো বাদ দিয়ে দেই তাহলেই আমরা ডায়মন্ডের  এরিয়া পেয়ে যাবো ।
এখন ,
    R1 ও R2 বৃত্তের মধ্যকার বাহুকে ধরি , a
    R2 ও R3 বৃত্তের মধ্যকার বাহুকে ধরি , b
    R1 ও R3 বৃত্তের মধ্যকার বাহুকে ধরি , c
 
 
    


           

           তাহলে,
                    a=r1+r2
b=r2+r3
c=r3+r1

এখন তিনটি বাহুর দৈর্ঘ্য দেয়া থাকলে আমরা
ত্রিভুজটির ক্ষেত্রফল বের করতে পারি ,এর
জন্য প্রথমেই আমাদের পরিসীমা বের করতে
হবে ।
 
পরিসীমা P=a+b+c

তাহলে ত্রিভুজটির ক্ষেত্রফল হবে,

area=sqrt(s*(s-a)*(s-b)*(s-c))

যেখানে s হচ্ছে পরিসীমার অর্ধেক ।

s= p/2

এখন আমরা ত্রিভুজটির ক্ষেত্রফল জানি ।

মাধ্যমিক শ্রেণির জ্যামিতি থেকে আমরা বৃত্তকলার
ক্ষেত্রফল সম্পর্কে জানি । এখানে বৃত্তকলার
ক্ষেত্রফল দিয়ে আমরা ত্রিভুজের অন্তর্গত বৃত্তের
অংশের ক্ষেত্রফল জানতে পারি ,

সে জন্য আমাদের সুত্র হলো,
বৃত্তকলার ক্ষেত্রফল = (১/২)* ব্যাসার্ধ * ব্যাসার্ধ * বৃত্তকলার অন্তর্ভুক্ত কোণ

এখন আমাদের প্রতিটি বৃত্তের জন্য বৃত্তকলার
ক্ষেত্রফল বের করতে হলে ,আমাদের বাহুগুলির
অন্তর্ভুক্ত কোণগুলি জানতে হবে । আর সেজন্য
আমরা জানি,
cos(C) = a2 + b2 − c22ab
cos(A) = b2 + c2 − a22bc
cos(B) = c2 + a2 − b22ca



তাহলে ,
                 area1=.5*r1*r1*acos((c*c+a*a-b*b)/(2*c*a))
এখানে
acos((c*c+a*a-b*b)/(2*c*a))
দ্বারা cos-1((c*c+a*a-b*b)/(2*c*a))কে
বুঝানো হয়েছে।

acos সি/সি প্লাস প্লাস প্রোগ্রমিং এর ফাংশন ।

area2=.5*r2*r2*acos((b*b+a*a-c*c)/(2*a*b))

area3=.5*r3*r3*acos((c*c+b*b-a*a)/(2*b*c))

এখন , ত্রিভুজের ক্ষেত্রফল থেকে বৃত্তকলার
ক্ষেত্রফলগুলো বিয়োগ করলেই আমাদের
ডায়মন্ডের এরিয়াটুকু পেয়ে যাবো।


For source code: Source code




Share:

Saturday, September 16, 2017

Converting a number From One base to another

Sajib's Blog

Converting a number From One base to another :



#include<bits/stdc++.h>
using namespace std;
int main()
{
    int base1,base2;
    int num;

    while(1){cout<<"Enter a number to convert(enter 0 to exit ): ";
    cin>>num;
    if(num==0)break;
    int x=num;
    cout<<"Enter the present base of this number: ";
    cin>>base1;
    cout<<"Enter a base in which you want to convert this number :";
    cin>>base2;
    int rem;
    int base=1;
    int num2=0;
    while(num>0)
    {
        rem=num%base2;
        num2=num2+rem*base;
        num=num/base2;
        base=base*base1;
    }
    cout<<x<<" after converted to  "<< base2 <<":"<<num2<<endl;
    cout<<"sajibtalukder2k16.blogspot.com"<<endl;}


}

 

 

 

 

 

 


Share:

The great 3n+1

Sajib's Blog

UVa 100

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)==2)
    {
        cout<<a<<" "<<b<<" ";
        if(a>b)
        {
            a=a+b;
            b=a-b;
            a=a-b;
            ///cout<<a<<" "<<b<<endl;
        }
        int i,j,maxx;
        j=1;
        maxx=0;
        for(i=a;i<=b;i++)
        {
            int m=i;
            while(m!=1)
            {
                if(m%2==0)m=m/2;
                else m=m*3+1;

                j++;
            }
            if(j>maxx)maxx=j;
            j=1;
        }
        cout<<maxx<<endl;
    }

}

 

 


 

Share:

Thursday, September 14, 2017

why this kolaverri spoj

Sajib's Blog


Why this kolaveri di spoj:

 

 #include <cstdio>

using namespace std;

int main(){
    int T,n;

    scanf("%d",&T);

    while(T--){
        scanf("%d",&n);

        int ans = 0;

        for(int i = 2;i <= n;++i)
            ans = (ans + n + 1 - i) % i;

        printf("%d\n",ans + 1);
    }

    return 0;
}

Share:

Sunday, August 13, 2017

decimel to ternary

Sajib's Blog

DECIMEL TO TERNARY




#include<bits/stdc++.h>
using namespace std;
void bse(int n)
{
    if(n==0)return ;

    bse(n/3);
    printf("%d",n%3);
}
int main()
{
    int num;
    while(scanf("%d",&num)==1 && num>=0)
    {
        if(num==0)
        {
            printf("0\n");
            continue;
        }
        bse(num);
        printf("\n");
    }


}

Share: