Showing posts with label Toph Solution With Logic. Show all posts
Showing posts with label Toph Solution With Logic. Show all posts

Saturday, August 26, 2017

Despacio Air In Bus Toph Problem Solution & Logic

https://toph.co/p/despacio-air-in-bus


এই ছবি'র দিকে লক্ষ করো , এখানে একটা ফ্রেমে --- ২টা জানালা আছে , লেংথ যাদের সমান । । এখন ,
এই ফ্রেমের প্রস্থ  W  দেয়া আছে , এবং দৈর্ঘ্য   L  দেয়া আছে এবং , একটা জানালার প্রস্থটুকু  D  দেয়া আছে  || 

তোমায় বলতে হবে , জানালা যদি সমানভাবে খোলা রাখতে চায় তাহলে , জানালার বাম পাশের জন ও ডান পাশের জন কতটুকু করে অংশ পাবে ????   তাহলে , ছবি দেখেই তুমি বুঝতে পারছো যে ---

ফ্রেমের মোট প্রস্থ থেকে যদি -- জানালার প্রস্থটুকু বাদ দেই , তাহলে যে অংশটুকু পাবো , সেটা হলো জানালা খোলা রাখলে , ডান ও বাম পাশের মোট অংশ , এখন আমরা যদি একে ২ দিয়ে ভাগ দিয়ে দেই , তাহলেই কিন্তু ---- যে কোনো এক পাশের প্রস্থ পেয়ে যাবো , তাই না ??  আর , তারপর দৈর্ঘ্য   L দিয়ে গুণ করলেই কিন্তু , ক্ষেত্রফল পেয়ে যাবো ওই অংশের \\\ 

চলো , কোড দেখি এবার --------




#include<bits/stdc++.h>

using namespace std;

int main()
{
    int t;
    double l,w,d,r;
    cin>>t;
    int i=1;

    while(t--)  {
           
        cin>>l>>w>>d;

        r=((w-d)/2)*l;

        printf("Case %d: %0.2lf\n",i,r);
        i++;
    }
    return 0;
}




The Boat Filled With Love Toph Problem Solution & Logic


 
 
 https://toph.co/p/the-boat-filled-with-love
 
 
 বন্যা দুরগতদের জন্য আয়োজিত একটা কনটেস্ট ছিলো , যাই হোক ---- খুবই খুবই সহজ একটা  প্রোবলেম 
এখানে , তোনায় ইনপুট -এ একটা সংখ্যা দেয় আথাকবে , তোমায় 
 
"We Love You. We "n" Are Here For You." 
 
এই কথাটা লিখতে হবে , আর n এর জায়গায় ইনপুট-এ দেয়া মান প্রকাশ করতে হবে 
।   চলো , কোড দেখে আসি এবার -----------------
 
 
 
#include<bits/stdc++.h>

using namespace std;

int main()

{
    int n;
    cin>>n;
    cout<<"We Love You. We "<<n<<" Are Here For You."<<endl;
}

Friday, August 18, 2017

Meena Meets The Marauders Toph Problem Solution & LOgic

https://toph.co/p/meena-meets-the-marauders

খুবই সহজ একটা প্রোবলেম , বাট শুধু শুধু প্রোব্লেম এর ডেস্ক্রিপশনে কঠিন করে লিখে রেখেছে । যাই হোক , তোমায় তিনটা মান দেয়া থাকবে  A , B  & C  । বাট , শুধু তোমার  C  এর মান'টাই কাজে  লাগবে । ।
তোমায়  C  এর মান যোগ করে যে , যোগফল যা আসবে  তার দ্বিগুণ হবে উত্তর -- চলো কোড দেখি এবার




#include<bits/stdc++.h>

using namespace std;

int main()

{
    int n,m;
    cin>>n>>m;
    long long int A,B,C,ans=0;
    while(m--)
    {
        cin>>A>>B>>C;
        ans = ans + C;
    }

    cout<<(ans<<1)<<endl;

    return 0;

}

Laali vs Bessie Toph Problem Solution & Logic

https://toph.co/p/laali-vs-bessie

 if(i is equal to the smallest divisor of M and N>=i ) { //1 is not considered as a divisor
        M = M / i;
        N = N - i;
    }
 
 এই অংশটুকু ভালো করে বুঝতে হবে , তাহলেই মোটামুটি সল্ভ করার মতো চিন্তা করতে পারবা । তোমায় ২ টা 
মান দেয়া থাকবে ,  N & M তোমায় একটা লুপ ঘুরাতে হবে - ২ থেকে শুরু করে । যখনি - 
M  এর একটা করে গুণনীয়ক পাবা - ঠিক তখনই উপরে ব্র্যাকেটের ভেতরের কাজ গুলো করতে হবে আর যখনি দেখবা , 
M  এর গুণনীয়ক i , N এর চেয়ে বড় হয়ে যাবে ঠিক তখনই লুপ ভেংগে যাবে । এইটুকু অবদি , সবাই বুঝতে পারবে 
কিন্তু - সমস্যা আছে আমরা যখন লুপ ঘুরাবো তখন কিন্তু , M এর sqrt মান অবদি ঘুরাবো - তাহলে আমাদের সময় কম লাগবে 
কিন্তু , মাঝে মধ্যে দেখা যায় - একটু সমস্যা , যেমন উদাহরণ দিয়ে বুঝাই ,চলো -
 
ধরো , দেয়া আছে  N & M এর মান 10 ও 10 । তাহলে , যখন লুপ এ i এর মান ২ দিয়ে শুরূ করবো তখন 
প্রথমে ,  M = M/2 = 5
        N = N-i = 8 
 
        
 হবে , তারপর আর হবে না , কারণ আমরা লুপ'টা ঘুরাবো sqrt(M) = 3 অবদি , এরপরে আর ঘুরবে না , অথচ 
 5 নিজেই কিন্তু , একটা গুননীয়ক 5 এর ও  N(8) >= i(5) অর্থাৎ আরো একধাপ কিন্তু বাকিই আছে । সুত্র অনুযায়ী 
হবে ,  M = M / i(M=5)  = 1
       N = N - i(M=5)  = 3 

এটাই হলো - প্রত্যাশিত উত্তর - সো , এই তিন ধরনের ঘটনা যদি কেউ বুঝতে পারে , তাহলে নিচের কোড দেখে 
আরো ক্লিয়ার হয়ে নাও , চলো -----------




#include<bits/stdc++.h>

using namespace std;

int main()
{
    long long int n,m,i,j,x;

    cin>>n>>m;

    x=sqrt(m);

    bool joy = false;

    for(i=2;i<=x;i++)

    {

        if(m%i==0 && n>=i)

        {
            m = m/i ;
            n = n-i ;
        }

        if(m%i==0)

        {
            joy = true ;
            break;
        }
    }

    if(m>1 && n>=m && joy==false )

    {
        n=n-m;
        m=m/m;
    }

    cout<<n<<" "<<m<<endl;

    return 0;
}


Thursday, August 17, 2017

Red and Green Toph Problem Solution & LOgic

https://toph.co/p/red-and-green


খুবই মজার একটা প্রোবলেম , এখানে একটা ব্লকে অনেকগুলো নোড আছে , যার প্রথম নোডই লাল - আরেকদিকে , অপর নোড সবুজ - এরপরই একই ভাবে শুধু লাল ও সবুজ ।।। এখন তোমায় দুইটা - নোড নাম্বার   X    &   Y   দেয়া থাকবে , তোমায় বলতে হবে এই দুইটা নোড এর মাঝে - কয়টা নোড লাল ?? আর কয়টা নোড সবুজ ??? এটা এমন কি আর - কঠিন কাজ ??  একটু কষ্ট করে ভাবলেই সব ক্লু পাওয়া যাবে ।। যদি  X==Y তাহলে , যদি X  বিজোড় হয় তাহলে , লাল একটা ও সবুজ ০ টা এবং যদি  X
জোড় হয় তাহলে ,  লাল ০ টা ও সবুজ ১ টা ।।

যদি   X != Y  হয় ,  তাহলে  ,  মোট  ৪'টা   সম্ভাবনা  হতে পারে --

  X  বিজোড়  ও  Y  জোড় 

  X  জোড়  ও  Y  বিজোড়

  X   বিজোড়  ও  Y  বিজোড়

  X   জোড়  ও  Y  জোড়

এখন কোন'টা হলে - কি হবে ??? সেটা না হয় , একটু চিন্তা করেই দেখো আর না হয় কোড দেখে বুঝার চেষ্টা করো , কিভাবে কি হলো ???  নিজের মাথা'টা একটু কাজে লাগানোর ট্রাই করো ।



#include <bits/stdc++.h>

using namespace std;
 
int main()
 
{
 
    long long int t, n, m, x, y;
 
    cin >> t;
 
    while(t--)
 
    {
        cin >> n >> m;
 
        while(m--)
 
        {
            cin >> x >> y;
 
            if(x == y)
 
            {
                if(x%2!=0)
 
 
                 cout << 1 << " " << 0 << endl;
 
 
                else 
                         {
 
                         cout << 0 << " " << 1 << endl;
                   }
 
            else if(x%2!=0 && y%2==0) cout << ((y-x)/2)+1 << " " << ((y-x)/2)+1 << endl;
            else if(x%2==0 && y%2!=0) cout << ((y-x)/2)+1 << " " << ((y-x)/2)+1 << endl;
            else if(x%2!=0 && y%2!=0) cout << ((y-x)/2)+1 << " " << (y-x)/2 << endl;
            else if(x%2==0 && y%2==0) cout << (y-x)/2 << " " << ((y-x)/2)+1 << endl;
        }
    }
 return 0;
 
}

Digit Separation Toph Problem Solution & Logic

https://toph.co/p/digit-separation

এটা  খুবই  সহজ  মানের  একটা  সমস্যা - যে কেউ পারবে বলে আমার মনে হয় । তোমায় বিশাল বড় একটা সংখ্যা দেয়া থাকবে , এমনকি সেটা ১০০০ ডিজিট এরও হতে পারে । তোমায় শুধু , ডিজিট গুলোর যোগফল বের করে দেখাতে হবে , এখন সংখ্যাটি যেহেতু অনেক বড় হতে পারে - সুতরাং আমরা স্ট্রিং আকারে নিবো - ------------- চলো কোড দেখি এবার


#include<bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    while(cin>>s)
    {
        int sum=0;
        for(int i=0;i<s.size();i++)
        {
            sum=sum+s[i]-'0';
        }
        cout<<sum<<endl;
    }
    return 0;
}

Circle of Boltu Toph Problem Solution & Logic

https://toph.co/p/circle-of-boltu

প্রশ্ন'টা যদি কেউ বুঝতে পারে , তাহলে মনে হয় না -- কারো করতে খুব একটা ঝামেলা হবে । ।
তোমায় কয়েকটা বৃত্ত দেয়া থাকবে ও সেই গুলোর কেন্দ্রের স্থানাংক X & Y  দেয়া থাকবে , তোমায় বলতে হবে , কোন দুইটা  বৃত্ত এর মধ্যে দুরত্ব সবচেয়ে বেশী ?? তাহলে , যত গুলো জোড়া সম্ভব চেক করে দেখবো , দুরত্ব কোনটাতে বেশী হয় ?? এই জন্য আমরা ২ টা লুপ খাটালেই হবে । এখন  ব্যতিক্রমি ঘটনা আছে একটা ,সেটা হলো - আমরা যখন দুইটা বিন্দুর দুরত্ব বের করার জন্য sqrt( (x1-x2)^2 + (y1-y2)^2) এই সুত্র বের করি , বল্টু সাহেব আবার - sqrt এর কাজ করে না , সো আমরাও এখানে ব্যবহার করবো না , চলো দেখে আসি -----


#include<bits/stdc++.h>

using namespace std;

int main()
{
    int t,n;

    cin>>t;

    for(int i=1;i<=t;i++)

    {
        cin>>n;

        long long int x[n],y[n],sum,c=0;

        for(int j=0;j<n;j++){
               
        cin>>x[j]>>y[j];
       
        }

        for (int k=0;k<n-1;k++)

        {
            for (int j=k+1;j<n;j++)

            {
                 sum=(x[j]-x[k])*(x[j]-x[k])+(y[j]-y[k])*(y[j]-y[k]);

                if (sum>c)

                {
                    c=sum;
                }
            }
        }

        cout<<"Case "<<i<<": "<<c<<endl;
    }
    return 0;
}

 

Zacob The Batsman!! Toph Problem Solution & Logic

https://toph.co/p/zacob-the-batsman

এটা গণিতের খুব মজার একটা সমস্যা - যদি কেউ বুঝতে পারে তাহলে -- তোমায় যদি বলা হয় কখনো
যে -  Ax + By = C একটা সমীকরণ , তাহলে মনে রাখবে - C অবশ্যই সবসময়  A & B  এর গ সা গু এর গুণিতক হবে সবসময়  ।  এই প্রোবলেম - এ , তোমায়  A & B এর মান দেয়াই আছে  6 & 4 কারণ-জ্যাকব নামের ব্যাটসম্যান খুবই মারকুটে ৪ / ৬ ছাড়া কিছু মারে না   , তাহলে -
তুমি বুঝতেই পারছো --  C এর মান অবশ্যই , 6 & 4  এর গ সা গু ২ এর গুণিতক হবে , কোনো সন্দেহ ছাড়াই । এখন , তোমায় একটা মান দেয়া থাকবে , তোমায় বলতে হবে যে  - দেয়া মান , C এর মান হতে পারে কি না ??

তাহলে , দেয়া মান , C এর মান তখনই হবে যখন -- সেই মান 6 & 4  এর গ সা গু ২ এর গুণিতক হবে ও এমনকি শূন্য (০) হতেও পারে । যেহেতু , x & y এর মান নেগেটিভ নয় ,সুতরাং  C এর মান কখনোই  4 এর কম হবে না , এটা মাথায় রাখতে হবে । । চলো কোড দেখে নেই এবার --





#include<bits/stdc++.h>

using namespace std;

int main()

{

    int a;

    cin>>a;

    while(a--)

    {
        long long int c;

        cin>>c;

        if(c<4 && c>0)

       {
            cout<<"Sorry Zacob!"<<endl;

        }

        else if(c==0 || c%2==0)

            {
           
            cout<<"Zacob Zacob!"<<endl;
           
             }
       
        else
           
        {
            cout<<"Sorry Zacob!"<<endl;
        }

    }

    return 0;

}



Heavy Alphabet Toph Problem Solution & Logic

https://toph.co/p/heavy-alphabet

খুবই মজার একটি সমস্যা , শুধু একটু সহজ করে চিন্তা করতে হবে । ব্যাস , এইটুকুই - আর কিছুই নয় ,
তোমায় একটা স্ট্রিং দেয়া থাকবে - তোমায় একটা - একটা করে অক্ষর লিখতে হবে এবং সেটা তারপর কতোবার করে আছে , সেই অনুযায়ি ততোগুলি # চিহ্ন দিতে হবে । চলো উদাহরন দিয়ে বুঝে আসি --

aaabbbaaa এর ক্ষেত্রে ,  a লিখবো ও তারপর দুইটা a এর জায়গায় ২ টা  # চিহ্ন থাকবে . তারপর b লিখবো ,তারপর ২ টা b এর জায়গায় ২ টা # চিহ্ন দিবো । তারপর আবার a লিখবো ও তারপর ২টা a এর জায়গায় ২টা # চিহ্ন দিবো ,তাহলে দাঁড়াবে ----   a##b##a## এটাই আমাদের প্রত্যাশিত উত্তর ।

ঠিক এইভাবেই আমরা কোড'টা লিখবো , ও হ্যা আর একটি কথা - ছোট হাতের / বড় হাতের কোনো কিছু ফ্যাক্ট করবে না । তাই ,চেক করার সময় হয় ছোট হাতের বানিয়ে চেক করবো অথবা বড় হাতের বানিয়ে চেক করবো , চলো এবার কোড দেখি -------





#include<bits/stdc++.h>

using namespace std;

int main()
{


  int a,i;

  string s;

  cin>>a;

  while(a--){

        cin>>s;

     for(i=0;i<s.size();i++){

        if(tolower(s[i])==tolower(s[i-1])){
            cout<<"#";
            continue;
        }
        else{
            cout<<s[i];

        }


     }


 cout<<endl;


     }

}

Wednesday, August 16, 2017

A Girl's Story Toph Problem Solution & Logic

https://toph.co/p/a-girl-s-story

গণিতে যাদের দক্ষতা ভালো - তাদের কাছে , এসব সমস্যা কোনো ব্যপারই না । । নাইন-টেন এর প্রোবলেম , এসব ।

X year earlier Raju’s age was one half of Meena’s age. Currently Meena is Y year old. Now Meena want to know the current age of Raju, but she just learned about multiplication table and nothing else. She find this task very hard. So as a good childhood friend of Meena you have to help her today.           এইটুকুই হলো - এই সমস্যার চুম্বক অংশ , যেখান থেকে - আমরা , আমাদের সব ধরনের ক্লু পেয়ে যাবো ।

তাহলে , ধরি -  X বছর আগে রাজুর বয়স ছিলো  R
                        X বছর আগে মিনার বয়স ছিল্লো  2R

বর্তমানে , রাজুর বয়স  =  R + X;
বর্তমানে , মিনার বয়স , Y   = 2R+ X ;
                                     বা , R = (Y - X)/2;

এখন , আমাদের বের করতে হবে - রাজুর রিসেন্ট বয়স কতো ????

সুতরাং, বর্তমানে , রাজুর বয়স = (Y - X)/2 + X; [  R এর মান বসিয়ে ]
                                                 = Y/2 + X/2 -X/2
                                                =  Y/2 + X/2 = ( Y + X ) /2
আশা করি , কোড লিখতে আর কোনো সমস্যা হবে না , এক্কেবারে সোজা - তাই না চলো কোড দেখে আসি --------------

#include<bits/stdc++.h>

using namespace std;

typedef unsigned long long llu ;

int main()

{

    llu x,y;

    cin>>x>>y;

    cout<<((x+y)>>1)<<endl;

    return 0;
}

                                            

Saturday, July 8, 2017

Sofdor Ali Got Mail! Toph Solution & Logic

https://toph.co/p/sofdor-ali-got-mail

অনেক সহজ একটি ,প্রোবলেম
প্রোবলেমটি'তে যে লেখাটি IJ TPGEPS BMJ   দেয়া আছে ,সেটা মূলত তার আগের character গুলোর 
রিপ্লেইস এর ফলে create হয়েছে ,অর্থাৎ   I  এর জায়গায় আসলে ছিলো  H , J এর জায়গায় আসলে ছিলো  I ..........

কোড দেখলে ,সব ক্লিয়ার ..


#include<bits/stdc++.h>

using namespace std;


    int main()
{

    printf("HI SOFDOR ALI\n");

    return 0;
}



Easy Sequence Toph Problem Logic And Solution

https://toph.co/p/easy-sequence-1

Easy Sequence ,Toph Problem Solution .

প্রথমে ,প্রোবলেম'টির বেইস কেস হিসাব করতে হবে ,
F(1) = 1;

তারপর নিচের সূত্র এর দিকে নজর দিতে হবে 

F(2X) = F(X)2 + 1
F(2X+1) = F(X) * F(X+1) + 2

 F(2*1) = F(2) =  F(1)*F(1)+1 = 1*1 + 1 == 2; // Base Case F(1)=1;

F(2*1+1) = F(3) =  F(1)*F(1+1) = 1*2+2 == 4;// Base case F(1) = 1, Got F(2)=2 above line ;

এখন আপনাকে , দেয়া থাকবে - ডান দিকের মানগুলি এবং আপনাকে বলতে হবে এটা F এর কততম
ফাংশনের মান ??

যেমন , যদি ইনপুট দেয়া থাকে 4 তাহলে , আপনি উপরে দেখেই বুঝতে পারছেন যে- এটা , F(3) এর মান
সুতরাং উত্তর হবে 3 এটা বের করার জন্য ,একটা লুপ খাটিয়ে কাজ করতে হবে ।

আরো ভালো ,বুঝার জন্য - কোড'টি দেখুন //


#include<bits/stdc++.h>

using namespace std;



int main()

{

     long long dp[100],x;
     memset(dp,0,sizeof(dp));
     dp[0]=-1;
     dp[1]=1; 
     dp[2]=2;
     for(int i=1;i<=90/2;i++)
     {
         dp[2*i]=dp[i]*dp[i]+1;
         dp[(2*i)+1]=dp[i]*dp[i+1]+2;
     }
     int t,k=1;
     cin>>t;
     while(t--)
     {
         cin>>x;
         cout<<"Case "<<k<<": ";
         for(int i=0;i<=100;i++)
         {
             if(x==dp[i])
             {
                 cout<<i<<endl;
                 break;
             }
         }
         k++;
     }
    return 0;
}