Monday 26 September 2016

UVA 12502 - Three Families

Problem Link:UVA 12502 - Three Families
Hints: এখানে ধরি x,,y,z মিলে একটি কাজ করে .তাদের কাজের গতি একই।  কোন এক দিন x কাজ করে নি। সে কাজটি y,a পরিমান এবং z, b পরিমান করেছে। এবং x তার কাজের বিনিময়ে c পরিমান টাকা দিল। এখন a কত টাকা পাবে?
৩ জনে যেহেতু কাজ করে সে জন্য প্রত্যেকে (a+b)/৩ পরিমাণ কাজ কোড়তে হতো।
যেহেতু x কাজ কোড়েণী সেহেতু (a+b)/৩  কাজের বিনিময় টাকা দিয়েছে।
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long t,a,b,c;
    cin>>t;
    while(t--)
    {
        cin>>a>>b>>c;
       // av=(a+b)/3;
       // tk=c/av;

       // tk=(a+b)/c;

        cout<<c*(2*a-b)/(a+b)<<endl;
    }
    return 0;
}

UVA 12149 - Feynman

Problem Link:UVA 12149 - Feynman
Hints:
এই সমস্যাটি একটু চিন্তা করলে দেকবে  যে একটা ধারা পাওয়া যায়, যথা_
1^2+2^2+3^2+............
এখানে N এর মান দেওয়া আছে ১ ঠেকে N পর্যন্ত সংখ্যার বর্গের সমষ্টি বেড় কোড়টে হোবে।
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n;
    while(cin>>n)
    {
        if(n==0)
            break;
        n=n*(n+1)*(2*n+1)/6;
        cout<<n<<endl;
    }
    return 0;
}

UVA 11875 - Brick Game

Problem Link:UVA 11875 - Brick Game
Hints:Array list টা sort করে মাঝের index টা নিতে হবে।
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long i,t,ar[20],m,j,mid;
    cin>>t;
    for(i=1;i<=t;i++)
    {
        cin>>m;
        for(j=0;j<m;j++)
            cin>>ar[j];
        sort(ar,ar+m);
        mid=(m+1)/2;
        cout<<"Case "<<i<<": "<<ar[mid-1]<<endl;
    }
    return 0;
}

UVA 11805 - Bafana Bafana

Problem Link:UVA 11805 - Bafana Bafana
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,k,p,t,i;
    cin>>t;
    for(i=1; i<=t; i++)
    {
        cin>>n>>k>>p;
        k+=p;
        k=k%n;
        if(k==0)
            k=n;
        cout<<"Case "<<i<<": "<<k<<endl;
    }
    return 0;
}

Thursday 22 September 2016

UVA 11723 - Numbering Roads

Problem Link:UVA 11723 - Numbering Roads
Hints :
তোমাকে রাস্তার সংখ্যা এবং রাস্তার নাম দেয়ার জন্য ১ থকে n পর্যন্ত সংখ্যা এবন a থেকে z পর্যন্ত অক্ষর দেওয়া আছে তোমাকে রাস্তার নাম ঠিক করতে বলা হয়েছে।
মনে করি n এর মান ৫ এবং রাস্তার সংখ্যা ২০ টি। তবে কি ভাবে রাস্তার নাম ঠিক করবে তাই না?
নাম ঠিক করার জন্মে এখানে একটি অক্ষর এবং একটি সংখ্যা ব্যাবহার করতে বলা হয়েছে।
এক্ষেত্রে নাম গুল হবে
1a,2a,3a,4a,5a,2a,2b,2c,2d,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1z,2z,3z,4z,5z;
এখানে সরব নিম্ন কয়টি অক্ষর লাগবে তা বের করতে বলা হয়েছে,।
যেহেতু n এর মান ৫ সেহেতু কোন অক্ষর ছাতাই ৫ টি নাম ঠিক করা যায়।
যথা ১,২,৩,৪,৫
তাহলে আর বাকি থাকে ২০-৫=১৫ টি রাস্তা।
সুতরাং ১৫ টি রাস্তার নাম ঠিক করতে ১৫/৫=৩ টি অক্ষর লাগে।
বিঃদ্রঃ কিন্তু যদি ১৫ এর পরিবরতে ১৬ হত তবে ১৬/৩=৩ হলেও ভাগশেষ থাকে সেহেতু একটি অক্ষর বেসি অর্থাৎ ৩+১=৪ টি অক্ষর প্রয়োজন পরবে।

Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long a,b,s,s1,s3,ans,i=1;
    while(cin>>a>>b)
    {
        if(a==0&&b==0)
            break;
        s=a-b;
       // cout<<"s="<<s<<endl;
        s1=s/b;
        //cout<<s1<<endl;
        s3=s%b;
        if(s3>0)
            s1=s1+1;
            if(s1>26)
                cout<<"Case "<<i<<": impossible"<<endl;
            else
        cout<<"Case "<<i<<": "<<s1<<endl;
        i++;
    }
    return 0;
}

Wednesday 21 September 2016

UVA 11614 - Etruscan Warriors Never Play Chess

Problem:UVA 11614 - Etruscan Warriors Never Play Chess
Hints :
প্রশ্নমতেঃ একটি ধারা পাওয়া যায়। ধারাটি হল_
১+২+৩+৫+...............
প্রশ্নে ধারাটির n তম পদের সমষ্টি দেওয়া আছে n এর মান বের করতে হবে_
আমরা জানি n তম পদের সমষ্টি =n*(2*a+(n-1)*d)/2
এখানে,
a=1;d=1    (3-2=2-1)
এখন যদি সমষ্টি x দেওয়া থাকে তবে,
n/2(2*1+(n-1)*1)=x
or,n*(2+n-1)=2*x;
or,n*n+n=2*x;
or;n*n+n-2*x=0
or,n=(-1+sqrt(1-4*1*2*x))/2
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long t,i,n,s;
    cin>>t;
    for(i=1; i<=t; i++)
    {
        cin>>n;
        s=(sqrt(1+4*2*n)-1)/2;
        cout<<s<<endl;
    }
    return 0;
}

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;
}

Tuesday 20 September 2016

UVA 10469 - To Carry or not to Carry

Problem:10469 - To Carry or not to Carry
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
       int a,b;
       while(cin>>a>>b)
       {
              int c=a^b;
              cout<<c<<endl;
       }
       return 0;
}

UVA 10071 - Back to High School Physics

Problen:10071 - Back to High School Physics
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
       long long a,b;
       while(cin>>a>>b)
       {
              cout<<2*a*b<<endl;
       }
       return 0;
}

UVA 10055 - Hashmat the Brave Warrior

Problem :10055 - Hashmat the Brave Warrior
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
       long long a,b,c;
       while(cin>>a>>b)
       {
              c=b-a;
              if(c<0)
                     c=-1*c;
              cout<<c<<endl;
       }
       return 0;
}