31 October 2015

Finding Squre Root


/***
Md. Namzul Hasan
Shahjalal University of Science & technology,sylhet.
hasan08sust@gmail.com
verdict:
***/

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<queue>
#include<algorithm>
#include<vector>
#include<cmath>
#include<cctype>
#include<sstream>
#include<stdlib.h>
#include<map>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
in data ;
double finding_sqrt()
{
    double e = 0.000001 ;
    double x = data ;
    double y =1 ;
    while(x-y>e)
    {
        x = (x+y) /2 ;
        y = data/x ;
    }
    return x ;
}

int main()
{
    while(sc("%d",&data)==1)
    {
    double sqt = finding_sqrt() ;
    pf("%.2lf\n\n",sqt) ;

    }

    return 0 ;
}

30 October 2015

Binary search

#include<stdio.h>
int main()
{
    int beg, mid,last,i,j,k=1 ,n;
    int data[500] ;
    int item ;
    scanf("%d",&n) ;

    for(i =0 ; i<n ; i++)
    {
        scanf("%d",&data[i]) ;
    }
    scanf("%d",&item) ;
    beg = 0 ;
    last = n-1 ;

     while(beg<=last)
     {
         mid = (beg+last)/2 ;

         if(item==data[mid])
         {
             break;
         }
         else if(item<data[mid])
         {
             last = mid-1 ;
         }
         else
         {
             beg = mid + 1 ;
         }
     }
     if(beg>last)
     {
         printf("%d is not in the data",item) ;
     }
     else
     {
          printf("%d is in the data & it's position is %d",item,mid+1) ;
     }
    return 0;
}

Check a number odd or even

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define clear_data(array) memset(array,0,sizeof(array))
#define highest_int 2147483647

int main()
{
    int n ;
    while(sc("%d",&n))
    {
       if(n&1)
            pf("ODD\n") ;
       else
        pf("EVEN\n") ;
    }
    return 0;
}


29 October 2015

BFS Algorithm

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define clear_data(array) memset(array,0,sizeof(array))
#define highest_int 2147483647

int node, edge ;
vector<int>G[10001] ;

int visited[10001] ;

int dis[10001] ; /// This array will help to find distance from source node to destination node
int src, des ;

int BFS()
{
    queue<int> q ;
    memset(visited,0,sizeof(visited)) ;
    memset(dis,0,sizeof(dis)) ;

    q.push(src) ;
    visited[src] =1 ;
    dis[src] =0 ;
    while(!q.empty())
    {
        int u = q.front() ;
        q.pop() ;
        for(int i=0 ; i<G[u].size(); i++)
        {
            int v = G[u][i] ;
            if(!visited[v])
            {
                visited[v] =1 ;
                dis[v] = dis[u] +1 ;
                q.push(v) ;
                if(v==des)
                    return dis[v] ;
            }
        }
    }
}

int main()
{
    sc("%d %d",&node,&edge) ;
    for(int i=1 ; i<=edge ; i++)
    {
        int u ,v ;
        sc("%d %d",&u,&v) ;
        G[u].pb(v) ;
        G[v].pb(u) ;

    }
    sc("%d %d",&src,&des) ;

    int m = BFS() ;
    if(m<0)
        pf("Sorry the destination is not in the graph") ;
    else
        pf("Minimum distance from %d to %d is %d",src,des,m) ;

    return 0;
}

Minimum spaning tree

 /***
Md. Namzul Hasan
Shahjalal University of Science & Technology,sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define mx 2147483647

struct edge
{
    int u,v,w ;
    bool operator < (const edge& p ) const
    {
        return w< p.w ;
    }
};

int pr[mx] ;
vector<edge> e ;

int find_dis(int r)
{
    return (pr[r]==r ? r : find_dis(pr[r])) ;
}

int mst(int n)
{
    sort(e.begin(), e.end()) ;
    for(int i=1 ; i<=n ; i++)
        pr[i] = i ;
    int cnt =0 , s =0 ;
    for(int i=0 ; i<e.size() ; i++)
    {
        int u = find_dis(e[i].u) ;
        int v = find_dis(e[i].v) ;
        if(u!=v)
        {
            pr[u] = v ;
            cnt++ ;
            s+=e[i].w ;
            if(cnt==n-1)
                break ;
        }
    }
    return s ;
}
int main()
{
    int n , m ;
    cin>>n>>m ;
    for(int i=1; i<=m ; i++)
    {
        int u ,v ,w ;
        cin>>u>>v>>w ;
        edge get ;
        get.u = u ;
        get.v = v ;
        get.w = w ;
        e.pb(get) ;
    }
    cout<<mst(n)<<endl ;
    return 0;
}

Bubble Sort

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define clear_data(array) memset(array,0,sizeof(array))
#define highest_int 2147483647

int data[1001] ;
int i,j,k,l,n;

void BUBBLE_sort()
{
    int s =0 ;
    for(i=0 ; i<n-1 ; i++)
    {
        for(j=0 ; j<n-1 ; j++)
        {
            if(data[j] > data[j+1])
            {
                k = data[j] ;
                data[j] = data[j+1] ;
                data[j+1] = k ;
                s++ ;
            }

        }
    }
}


int main()
{
    printf("How many numbers you want to insert : ") ;
    scanf("%d",&n) ;

    printf("Insert the numbers : ") ;
    for(i=0 ; i<n ; i++)
    {
        scanf("%d",&data[i]) ;
    }

    printf("\n") ;

    BUBBLE_sort() ;

    for(i=0 ; i<n ; i++)
        printf("%d ",data[i]) ;

    return 0 ;
}

Counting sort

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define clear_data(array) memset(array,0,sizeof(array))
#define highest_int 2147483647

int a[1001] ;
int b[1001] ;
int c[1001] ;

void counting_sort(int n, int k)
{
    memset(c,0,sizeof(c)) ;
    for(int i=1 ; i<=n ; i++)
        c[a[i]]++ ;
    for(int i=1 ; i<=k ; i++)
    {
        c[i] = c[i-1] + c[i] ;
    }
    for(int i=n ; i>=1 ; i--)
    {
        b[c[a[i]]] = a[i] ;
        c[a[i]]-- ;
    }
}
int main()
{
    int n ;
    while(sc("%d",&n) &&n)
    {
        int k =0 ;
        for(int i=1; i<=n ; i++)
        {
            sc("%d",&a[i]) ;
            if(a[i]>k)
                k = a[i] ;
        }
        counting_sort(n,k) ;
        for(int i=1 ; i<=n ; i++)
            pf("%d ",b[i]) ;

        pf("\n") ;
    }
}

Quick sort

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")

vector<int> data ;

void quick_sort(int left, int right)
{
    int i = left ;
    int j =right ;
    int temp ;
    int pivot = data[(left+right)/2] ;
    while(i<=j)
    {
        while(data[i]<pivot)
            i++ ;
        while(data[j]>pivot)
            j-- ;
        if(i<=j)
        {
            swap(data[i],data[j]) ;
            i++ ;
            j-- ;
        }
    }
    if(left<j)
    {
        quick_sort(left,j) ;
    }
    if(i<right)
        quick_sort(i,right) ;
}

int main()
{

    int n,p ;
    cin>>n ;
    for(int i=1 ; i<=n ; i++)
    {
        cin>>p ;
        data.pb(p) ;
    }
    int a,b ;
    a =0 ;
    b  = data.size()-1 ;

    quick_sort(a,b) ;
    for(int i=0 ; i<data.size(); i++)
        pf("%d ",data[i]) ;

    return 0;
}


Prime number

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define clear_data(array) memset(array,0,sizeof(array))
#define highest_int 2147483647

void  isPrime(int n)
{
    if(n<2)
    {
        pf("Is not prime\n") ;
        return ;
    }
    if(n==2)
    {
        pf("Is prime\n") ;
        return ;
    }
    if (n%2==0)
    {
        pf("Is not prime\n") ;
        return ;
    }
    int root = sqrt(n) ;
    for(int i=3 ; i<=root ; i+=2)
    {
        if(n%i==0)
        {
            pf("Is not prime\n") ;
            return ;
        }
    }
    pf("Is prime\n") ;
    return ;
}

int main()
{
    int n ;
    while(sc("%d",&n)==1)
    {
        if(n==0)
        {
            pf("Is not prime\n") ;
            continue ;
        }
        else
            isPrime(n) ;
    }
    return 0;
}


28 October 2015

Insertion sort

/***
Md. Namzul Hasan
Shahjalal University of Science & Technology,Sylhet.
hasan08sust@gmail.com
***/
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef int in ;
typedef unsigned long long ull ;
const double pi = 2*acos(0) ;
#define maxi 40000
#define pf printf
#define sc scanf
#define pb push_back
#define MEM(x,y) (memset((x),(y),sizeof(x)))
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#define load(array,size)  for(int i=0 ; i<size ; i++) cin>>array[i]  ;
#define new_line  pf("\n")
#define clear_data(array) memset(array,0,sizeof(array))
#define highest_int 2147483647
#define MIN3(a, b, c) ((a) < (b) ? ((a) < (c) ? (a) : (c)) : ((b) < (c) ? (b) : (c)))

int data[100] ;

int main()
{
    int n, c, d, t;
    scanf("%d", &n);

    for (c = 0; c < n; c++)
    {
        scanf("%d", &data[c]);
    }

    for (c = 1 ; c < n ; c++)
    {
        d = c;

        while ( d > 0 && data[d] < data[d-1])
        {
            t = data[d];
            data[d]   = data[d-1];
            data[d-1] = t;

            d--;
        }
    }

    for (c = 0; c < n ; c++)
    {
        printf("%d ", data[c]);
    }
}

14 October 2015

UVA 400 - Unix ls

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cctype>
#include<cmath>
using namespace std ;
string jak[100] ;
int main()
{
    int n ;
    while ( scanf ("%d", &n) != EOF )
    {
        for ( int i = 0; i < n; i++ )
            cin >> jak[i];

        sort (jak,jak+ n);

        int maxfile = 0;

        for ( int i = 0; i < n; i++ )
        {
            int len = jak[i].length ();
            if ( len > maxfile ) maxfile = len;
        }
        int Column = 62 / (maxfile + 2);
        int m = maxfile +2 ;
        int row = ceil (n / (double)Column);

        for(int t=0 ; t<60 ; t++)
            printf("-") ;
        cout<<endl ;

        for ( int i = 0; i < row; i++ )
        {
            for ( int j = i; j < n; j += row )
            {
                cout << jak[j];
                if ( j + row < n )
                {
                    for ( int k = jak[j].length (); k < m; k++ )
                        printf (" ");
                }
            }
            cout<<endl ;
        }
    }

    return 0;
}

UVA 10679 - I Love Strings!!