29 January 2016

UVA 558 - Wormholes

Click here to view the problem
/***
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

struct data
{
    int node, cost ;
    void MakePair(int i, int j)
    {
        node = i ;
        cost =j ;
    }
};

vector<data> jak[10001] ;
int dis[1100] ;
queue<int> q ;
int level[1100];

int Bellmen_ford(int node,int src)
{
    memset(dis,999999,sizeof(dis)) ;
    memset(level,0,sizeof(level)) ;

    dis[src] =0 ;
    level[src] =0 ;
    q.push(src) ;
    int u,v,cost,i,j ;

    while(!q.empty())
    {
        u = q.front() ;
        q.pop() ;
        if(level[u]==node-1)
            break ;
        if(!jak[u].empty())
        {
            for(i=0 ; i<jak[u].size() ; i++)
            {
                v = jak[u][i].node ;
                cost = jak[u][i].cost ;
                if(dis[u]+cost < dis[v])
                {
                    dis[v] = dis[u]+cost ;
                    level[v] = level[u]+1 ;
                    q.push(v) ;
                }
            }
        }
    }

    for(i=0 ; i<node ; i++)
    {
        u =i ;
        if(!jak[i].empty())
        {
            for(j=0 ; j<jak[i].size(); j++)
            {
                v = jak[u][j].node ;
                cost = jak[u][j].cost ;

                if(dis[u]+cost<dis[v])
                    return 1 ;
            }
        }
    }
    return 0 ;

}

int main()
{
    int test,n,m,x,y,t,i,j ;
    sc("%d",&test) ;
    data get ;

    while(test--)
    {
        sc("%d %d",&n,&m) ;
        for(i=0 ; i<n ; i++)
            jak[i].clear() ;

        for(i=1 ; i<=m ; i++)
        {
            sc("%d %d %d",&x,&y,&t) ;
            get.MakePair(y,t) ;
            jak[x].pb(get) ;
        }

        if(Bellmen_ford(n,0))
            pf("possible\n") ;
        else
            pf("not possible\n") ;
    }
    return 0;
}

27 January 2016

UVA 11466 - Largest Prime Divisor

click here to view problem
/***
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

ll data[1000000] ;

int main()
{
    ll n ,i,j,cnt,sum ,sq;

    while(cin>>n && n!=0)
    {
        n = abs(n) ;
        //sq = sqrt(n) ;
        j=0, cnt =0 , sum =0 ;
         memset(data,0,sizeof(data)) ;

        for(i=2 ; i<=sqrt(n) ; i++)
        {
            while(n%i==0)
            {
                  data[j++] =i ;
                  n = n/ i ;
                  cnt =1 ;
            }
            sum =sum + cnt ;
        }

        if(n>1)
        {
            ++sum ;
            data[j++] =n ;
        }

        if(j<=1 || sum<=1)
            pf("-1\n") ;
        else
            pf("%lld\n",data[j-1]) ;
    }
    return 0 ;
}

23 January 2016

UVA 583 - Prime Factors

Click here to view problem
/***
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,m,i ;
    while(sc("%d",&n) &&n)
    {
        m =n ;
        m = abs(m) ;
        pf("%d = ",n) ;
        if(n==1 || n==-1)
        {
            if(n==1)
                pf("1\n") ;
            else
                pf("-1\n") ;
            continue ;
        }

        if(n<0)
            pf("-1 x ") ;
        for(i=2 ; i<=sqrt(m); i++)
        {
            while(1)
            {
                if(m%i!=0)
                    break ;
                if(m%i==0)
                {
                    pf("%d",i) ;
                    m/=i ;
                    if(m>1)
                        pf(" x ") ;
                }
            }
        }
        if(m>1)
            pf("%d",m) ;
        pf("\n") ;
    }
}

22 January 2016

UVA 1216 - The Bug Sensor Problem

click here to view the problem
/***
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 maxi 100005

struct edge
{
    int u,v ;
    double w ;
};

vector<edge> e ;
int pr[maxi] ;
vector<int> xx, yy ;
edge get ;

bool comp(edge a, edge b)
{
    return a.w<b.w ;
}

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

void mst(int n, int m)
{
    int i,cnt =n,u,v ;
    double sum = 0.0 ;

    for(i=0 ; i<n ; i++)
        pr[i] =i ;
    sort(e.begin(),e.end(),comp) ;

    bool flag =true ;
    int ln = e.size() ;

    for(i=0 ; i<e.size(); i++)
    {
        u =find_r(e[i].u) ;
        v = find_r(e[i].v) ;
        if(u!=v)
        {
            pr[u] =v ;
            sum = max(sum,e[i].w) ;
            cnt-- ;
        }
        if(cnt==m)
        {
            sum = e[i].w ;
            flag =false ;
            break ;
        }
    }

    if(flag)
    {
        sum = e[ln-1].w ;
    }

    pf("%d\n",(int)ceil(sum)) ;

}


int main()
{
    int test,m,p,n,i,j ;
    sc("%d",&test) ;

    while(test--)
    {
        e.clear() ;
        xx.clear() ;
        yy.clear() ;

        sc("%d",&m) ;
        while(1)
        {
            sc("%d",&p) ;
            if(p==-1)
                break ;
            xx.pb(p) ;
            sc("%d",&p) ;
            yy.pb(p) ;
        }
        n = xx.size() ;
        double dis ;

        for(i=0 ; i<n ; i++)
        {
            for(j=i+1 ; j<n ; j++)
            {
                dis =hypot((xx[i]-xx[j]),(yy[i]-yy[j])) ;
                get.u =i ;
                get.v =j ;
                get.w =dis ;
                e.pb(get) ;
            }
        }

        mst(n,m) ;
    }

    return 0;
}


UVA 10842 - Traffic Flow

click here to view the problem
/***
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

struct edge
{
    int u,v,w ;
};

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

bool comp(edge a, edge b)
{
    return a.w>b.w ;
}

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

int mst(int n)
{
    int x = INT_MAX,cnt =0,i,u,v ;

    for(i=0 ; i<n ; i++)
        pr[i] =i ;

    sort(e.begin(),e.end(),comp) ;

    for(i=0 ; i<e.size() ; i++)
    {
        u = find_r(e[i].u) ;
        v= find_r(e[i].v) ;
        if(u!=v)
        {
            pr[u] =v ;
            x = min(x,e[i].w) ;
            cnt++ ;
            if(cnt==n-1)
                break ;
        }
    }
    return x ;
}

int main()
{
    int test,u,v,w ,cnt =1,i,ans,n,m ;
    cin>>test ;
    while(test--)
    {
        e.clear() ;
        sc("%d %d",&n,&m) ;
        for(i=1 ; i<=m ; i++)
        {
            sc("%d %d %d",&u,&v,&w) ;
            edge get ;
            get.u =u ;
            get.v =v ;
            get.w = w ;
            e.push_back(get) ;
        }

        ans = mst(n) ;
        pf("Case #%d: %d\n",cnt++,ans) ;
    }
    return 0;
}

UVA 1208 - Oreon

Click here to view the problem
/***
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 maxi 101

struct edge
{
    int u,v,w ;
};

vector<edge> e ;
int pr[maxi],rank_r[maxi] ;
edge get ;

bool comp(edge a, edge b)
{
    if(a.w == b.w)
    {
        if(a.u == b.u)
        {
            return a.v < b.v ;
        }
        else
            return a.u <b.u ;
    }
    else
        return a.w < b.w ;
}


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

void doUnion(int a, int b)
{
    if(rank_r[a]<rank_r[b])
    {
        pr[a] =b ;
    }
    else
    {
        if(rank_r[a] == rank_r[b])
            rank_r[a]++ ;
        pr[b] =a ;
    }
}

void mst(int n)
{
    int i,cnt=0 ,u,v;

    sort(e.begin(),e.end(),comp) ;

    for(i=0 ; i<=n ; i++)
    {
        pr[i] =i ;
        rank_r[i] =i ;
    }


    for(i=0 ; i<e.size() ; i++)
    {
        u  = find_r(e[i].u) ;
        v = find_r(e[i].v) ;
        if(u!=v)
        {
            doUnion(u,v) ;
            pf("%c-%c %d\n",e[i].u+'A' , e[i].v+'A', e[i].w) ;
            //cnt++ ;
            //if(cnt==n-1)
            //break ;
        }
    }
}

int main()
{
    int test,cnt =1,city,i,j,p ;
    cin>>test ;
    while(test--)
    {
        e.clear() ;

        cin>>city ;
        for(i=0 ; i<city ; i++)
        {
            for(j=0 ; j<city ; j++)
            {
                sc("%d,",&p) ;
                if(p)
                {
                    get.u =i<j ? i :j ;
                    get.v = j >i ? j:i;
                    get.w =p ;
                    e.push_back(get) ;
                }
            }
        }

        pf("Case %d:\n",cnt++) ;
        mst(city) ;

    }
    return 0;
}

20 January 2016

UVA 1174 - IP-TV

click here to view the problem
/***
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


struct edge
{
    int u ,v ;
    ll w ;
};

map<string, int> mp ;
vector<edge> e ;
edge get ;
int pr[5050] ;

bool comp(edge a, edge b)
{
    return a.w< b.w ;
}

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

void doUnion(int x, int y)
{
    x>y ? pr[y]=x : pr[x] =y ;
}

void mst(int n)
{
    int u,v,i,cnt =0;
    ll s =0 ;

    sort(e.begin(),e.end(),comp) ;

    for(i=1 ; i<=n ; i++)
        pr[i] =i ;

    for(i=0 ; i<e.size(); i++)
    {
        u = find_r(e[i].u) ;
        v = find_r(e[i].v) ;
        if(u!=v)
        {
            doUnion(u,v) ;
            s+=e[i].w ;
        }
    }
    pf("%lld\n",s) ;
}


int main()
{
    int test,n,m ,cnt=0,u,v;
    sc("%d",&test) ;
    string str1 ,str2 ;
    ll cost ;
    bool flag =false ;
    while(test--)
    {
        sc("%d %d",&m,&n) ;
        cnt =0 ;

        mp.clear() ;
        e.clear() ;

        while(n--)
        {
            cin>>str1>>str2>>cost ;

            if(mp[str1]==0)
                mp[str1] = ++cnt ;
            u = mp[str1] ;
            if(mp[str2]==0)
                mp[str2] = ++cnt ;
            v = mp[str2] ;

            get.u = u ;
            get.v = v ;
            get.w =cost ;
            e.pb(get) ;
        }
        //pf("cnt = %d\n",cnt) ;
        if(flag==true)
            pf("\n") ;
            flag = true ;
        mst(m) ;

    }
    return 0;
}

19 January 2016

UVA 11228 - Transportation system.

Click here to view the problem
/***
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

struct edge
{
    int u,v ;
    double w ;
};

double x[10001] , y[10001] ;
vector<edge> e ;
double r1, r2 ;
int c1, c2 ;
int pr[10001] ;

double dis(int i, int j)
{
    double d = sqrt( (x[i]-x[j]) * (x[i]-x[j]) + (y[i]-y[j]) * (y[i]-y[j]) ) ;
    return d ;
}

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

bool comp(edge a, edge b)
{
    return a.w< b.w ;
}

void mst(int n, int r)
{
    sort(e.begin(),e.end(),comp) ;
    r1 =0 ;
    r2 =0 ;
    c1 =0 ;
    c2 =0 ;
    int i,u,v,a1,a2 ;
    for(i=0 ; i <n ; i++)
        pr[i] =i ;

    for(i=0 ; i<e.size() ; i++)
    {
        u = find_r(e[i].u) ;
        v = find_r(e[i].v) ;
        if(u!=v)
        {
            if(e[i].w<=r)
            {
                r1+=e[i].w ;
                c1++ ;
            }
            else
            {
                r2+=e[i].w ;
                c2++ ;
            }
            pr[u] = v ;
        }
    }

    a1 = round(r1) ;
    a2 = round(r2) ;
    pf("%d %d %d\n",c2+1,a1,a2) ;

}

int main()
{
    int test ;
    sc("%d",&test) ;
    int n ,r,i,j ;
    int cnt =1 ;

    while(test--)
    {
        e.clear() ;

        sc("%d %d",&n,&r) ;
        for(i=0 ; i<n ; i++)
           cin>>x[i]>>y[i] ;

        edge get ;
        for(i=0 ; i<n ; i++)
        {
            for(j =i+1 ; j<n ; j++)
            {
                get.u =i ;
                get.v = j ;
                get.w = dis(i,j) ;
                e.pb(get) ;
            }
        }

        pf("Case #%d: ",cnt++) ;
        mst(n,r) ;
    }
    return 0;
}

17 January 2016

UVA 11747 - Heavy Cycle Edges

click here to view the problem
/***
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 maxi 10005

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

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

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

void mst(int n)
{
    vector<int> data ;
    data.clear() ;
    int i ,cnt =0,u,v,p;

    sort(e.begin(), e.end()) ;
    for(i=0 ; i<n ; i++)
        pr[i] =i ;

    for(i=0 ; i<e.size(); i++)
    {
        u = find_r(e[i].u) ;
        v = find_r(e[i].v) ;
        if(u!=v)
        {
            pr[u] =v ;
            //cnt++ ;
            //if(cnt==n-1)
                //break ;
        }
        else
        {
            p = e[i].w ;
            data.push_back(p) ;
        }
    }

    if(data.size()==0)
        pf("forest\n") ;
    else
    {
        for(i=0 ; i<data.size(); i++)
        {
            pf("%d",data[i]) ;
            if(i<data.size()-1)
                pf(" ") ;
        }
        pf("\n") ;
    }

}

int main()
{
    int n,m ;
    int u,v,w,i ;

    while(sc("%d %d",&n,&m)&& (n||m))
    {
        edge get ;
        for(i=1 ; i<=m ; i++)
        {
            cin>>u>>v>>w ;
            get.u =u ;
            get.v =v ;
            get.w =w ;
            e.pb(get) ;
        }
        mst(n) ;
        e.clear() ;
    }
    return 0;
}

UVA 908 - Re-connecting Computer Sites

Click here to view the problem
/***
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 maxi 1000050

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

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

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

int mst(int n)
{
    sort(e.begin(),e.end()) ;
    int i ;
    for(i=1 ; i<=n ; i++)
        pr[i] =i ;

    int cnt =0 ,s =0,u,v ;

    for(i=0 ; i<e.size(); i++)
    {
        u = find_r(e[i].u) ;
        v = find_r(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,k,total ;
    int u,v,w, first_cost,i, secnd_cost,t =0 ;

    while(sc("%d",&n)==1)
    {
        e.clear() ;
        total =0 ;
        for(i=1 ; i<n ; i++)
        {
            cin>>u>>v>>w ;
            total+=w ;
        }
        if(t)
            pf("\n") ;
        t =1 ;
        pf("%d\n", total) ;
        int a =2 ;

        while(a--)
        {
            sc("%d",&k) ;
            for(i=1 ; i<=k ; i++)
            {
                cin>>u>>v>>w ;
                edge get ;
                get.u =u ;
                get.v =v ;
                get.w =w ;
                e.pb(get) ;
            }
        }
        secnd_cost = mst(n) ;

        pf("%d\n", secnd_cost) ;
    }

    return 0;
}

15 January 2016

Codeforces 599A. Patrick and Shopping

Click here to view the problem
/***
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 d1, d2, d3,i,p ;
    vector<int> data ;
    for(i=0 ; i<3 ; i++)
    {
        cin>>p ;
        data.pb(p) ;
    }
    sort(data.begin(),data.end()) ;
    d1 = data[0] ;
    d2 = data[1] ;
    d3 = data[2] ;
    int dis1 = (d1*2) + (d2*2) ;
    int dis2 = d1 + d2 + d3 ;
    p = min(dis1,dis2) ;
    pf("%d",p) ;

    return 0;
}

Codeforces 96A. Football

Click here to view the problem
/***
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()
{
    string str ;
    int i ,cnt =1 , flag =0 ,l=0;
    //ch = str[0] ;
    cin>>str ;

    for(i=1 ; i<str.size() ; i++)
    {
        if(str[i]==str[i-1])
        {
            cnt++ ;
            if(cnt==7)
            {
                pf("YES") ;
                l =1 ;
                break ;
            }
        }
        else
            cnt =1 ;
    }
    if(cnt<7)
        pf("NO") ;
    return 0;
}

Codeforces 514A- Chewbaсca and Number

Clicke here to view the problem
/***
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()
{
    string str ;
    int i,k,t ;

    cin>>str ;
    for(i=0 ;i<str.size() ;i++)
    {
        t = str[i] - '0' ;
        k = 9 -t ;
        if(k<t)
        {
            if(i==0 && k==0)
                continue ;
            str[i] = k + '0' ;
        }
    }
    cout<<str ;
    return 0;
}

14 January 2016

UVA 10494 - If We Were a Child Again

Click here to view the problem
/***
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()
{
    ll n,m ;
    char str[1111],ch ;
    ll sum =0 ;
    int i ;
    while(sc("%s %c %lld",str,&ch,&m)!=-1)
    {
        if(strcmp(str, "0")==0)
        {
            pf("0\n") ;
            continue ;
        }

        int len = strlen(str) ;
        sum =0 ;
        for(i=0 ; i<len ; i++)
        {
            sum = sum*10 + str[i]-'0' ;
            str[i] = sum/m + '0' ;
            sum %=m ;
        }

        if(ch == '%')
        {
            pf("%lld\n",sum) ;
        }
        else if(ch =='/')
        {
            i =0 ;
            while(str[i]== '0' && i<len-1)
                i++ ;
            for( ; i<len ; i++)
                pf("%c",str[i]) ;
            pf("\n") ;
        }
    }
    return 0;
}

07 January 2016

UVA 10878 - Decode the tape

Click here to view the problem

/***
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 sum,i,k,len ,indx;
    char str[1000] ,ch;

    while(gets(str))
    {
        len = strlen(str) ;
        indx = len-4 ;
        k=1 ;
        sum =0;
        if(str[0]=='|')
        {
            for(i=0 ; i<len ; i++)
            {
                if(str[i]=='o')
                {
                    sum = sum + pow(2,indx) ;
                    k =0 ;
                }

                if(str[i]=='o'|| str[i]==' ')
                    indx-- ;
            }
        }
        ch = sum+'\0' ;
        if(k==0)
        cout<<ch;
    }

    return 0;
}

UVA 739 - Soundex Indexing

Click here to view the problem
/***
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

char arr1[] = "AEIOUYWH";
char arr2[] = "BPFV";
char arr3[] = "CSKGJQXZ";

int soundexcode(char ch)
{
    if(strchr(arr1,ch))
        return 0 ;
    if(strchr(arr2,ch))
        return 1 ;
    if(strchr(arr3,ch))
        return 2 ;
    if(ch=='D' || ch=='T')
        return 3 ;
    if(ch=='L')
        return 4 ;
    if(ch=='M' || ch=='N')
        return 5 ;
    if(ch=='R')
        return 6 ;

}


int main()
{
    char name[30] ;
    char data[30] ;
    pf ("         NAME                     SOUNDEX CODE\n");

    int code ,i, temp,len,indx ;
    while(gets(name))
    {
        data[0] = name[0] ;
        len = strlen(name) ;
        data[1] = data[2] = data[3] = '0' ;
        code = soundexcode(name[0]) ;
        indx =1 ;

        for(i=1 ; i<len ; i++)
        {
            temp =soundexcode(name[i]) ;
            if(temp!=code && temp!=0)
                data[indx++] = temp+ '0' ;
            if(temp!=code)
                code = temp ;
        }

        pf("%9s%s", "",name) ;
        for(i=0 ; i<25-len ; i++)
            pf(" ") ;
        pf("%c%c%c%c\n",data[0],data[1],data[2],data[3]) ;
    }

    pf ("                   END OF OUTPUT\n");
    return 0;
}

04 January 2016

Codeforces 611A New Year and Days

/***
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=0,i ;
    char ch[100] ;
    gets(ch) ;

    for(i=0 ; i<strlen(ch) ; i++)
    {
        if(ch[i]== ' ')
            break ;
        n = (n*10) + ch[i] -'0' ;
    }


    int l =strlen(ch) ;

    if(ch[l-1]=='k')
    {
        if((n>=1 && n<=4)|| n==7)
            pf("52") ;
        else if(n>=5 && n<=6)
            pf("53") ;

    }
    else
    {
        if(n<30)
            pf("12") ;
        else if(n==30)
            pf("11") ;
        else
            pf("7") ;
    }
    return 0;
}

03 January 2016

My first code with class in c++

/***
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

class exam
{
public:
    int p ;
    bool isPrime(int m)
    {
        if(m<2)
            return false ;
        else if(m==2)
            return true ;
        else if(m%2==0)
            return false ;
        else
        {
            int i ;
            for(i=2 ; i<=sqrt(m) ; i++)
            {
                if(m%i==0)
                    return false ;
            }
            return true ;
        }
    }


};


int main()
{
    int n ;
    sc("%d",&n) ;
    exam ob  ;
    bool t = ob.isPrime(n) ;
    if(t)
        pf("%d is Prime\n",n) ;
    else
        pf("%d in not Prime\n",n) ;
    return 0;
}

Codeforces 610A Pasha and Stick

/***
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 ;
    sc("%d",&n) ;

    if(n&1)
        pf("0") ;
    else
    {
        if(n%4==0)
        {
            pf("%d",(n/4)-1) ;
        }
        else
            pf("%d",n/4) ;
    }
    return 0;
}

Codeforces 612B HDD is Outdated Technology

/***
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,i,indx ;
    int p[210005] ;

    sc("%d",&n) ;
    int mx =-1,a ;
    for(i=1 ; i<=n ; i++)
    {
       sc("%d",&a) ;
       p[a] =i ;
    }

     ll sum =0 ;

     for(i= 1;i<n ; i++)
     {
         sum+=abs(p[i+1]-p[i]) ;
     }
    cout<<sum ;

    return 0;
}

01 January 2016

UVA 10394 - Twin Primes

/***
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

ll data[19000000] ;
ll prime[19000000] ;
ll cnt =1 ;

void isPrime()
{
   ll i,j ;
    ll k = 19000000 ;
    prime[0] = prime[1] =1 ;
    for(i=3 ; i<=k ; i+=2)
    {
        if(prime[i]==0)
        {
            for(j=i*i ; j<=k ; j+=(i+i))
            {
                prime[j] =1 ;
            }
        }
        if(prime[i]==0 && prime[i-2]==0)
        {
            data[cnt++] = i-2 ;
        }
    }
}

int main()
{
    isPrime() ;
    ll n ,cnt,i,num1,num2,dis;

    while(sc("%lld",&n)==1)
    {
        pf("(%lld, %lld)\n",data[n],data[n]+2) ;
    }
    return 0;
}

UVA 10679 - I Love Strings!!