Friday, November 21, 2014

CodeForces Solution of 294A - Shaass and Oskols

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int a[105];

int main()
{
    int n, m, x, y, right, left;
    int i, j;
    while(scanf("%d", &n)==1)
    {
        for(i=1; i<=n; i++)
        {
            scanf("%d", &a[i]);
        }
        scanf("%d", &m);
        for(j=1; j<=m; j++)
        {
            scanf("%d%d", &x, &y);
            if( (x+1) <=n )
            {
                right = a[x]-y;
                a[x+1] = a[x+1] + right;
            }
            if( (x-1)>=1)
            {
                left = y-1;
                a[x-1] = a[x-1]+left;
            }
            a[x] = 0;
        }
        for(i=1; i<=n; i++)
        {
            printf("%d\n", a[i]);
        }
    }
}

Saturday, November 15, 2014

CodeForces Solution of 306A - Candies

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int a[105];

int main()
{
    int n, m, i, div, mod;
    while(scanf("%d%d", &n, &m)==2)
    {
        div = (n/m);
        mod = (n%m);
        for(i=1; i<=m; i++)
        {
            a[i] = div;
            if(mod>0)
            {
                a[i]=div+1;
                mod--;
            }
        }
        for(i=1; i<=m ;i++)
        {
            printf("%d ", a[i]);
        }
        printf("\n");
    }
}

Friday, November 14, 2014

CodeForces Solution of 312A - Whose sentence is it?

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    string s;
    int test, l, i;
    int c1, c2, c3;
    scanf("%d", &test);
    cin.ignore();
    while(test--)
    {
        getline(cin, s);
        l=s.length();
        c1=c2=c3=0;
        for(i=0; i<l; i++)
        {
            if ((s[0] == 'm' && s[1] == 'i' && s[2] == 'a' && s[3] == 'o' && s[4] == '.')
            && (s[l-5] == 'l' && s[l-4] == 'a' && s[l-3] == 'l' && s[l-2] == 'a' && s[l-1]== '.') )
            {
                c3=3;
            }
            else if(s[0] == 'm' && s[1] == 'i' && s[2] == 'a' && s[3] == 'o' && s[4] == '.')
            {
                c1=1;
            }
            else if(s[l-5] == 'l' && s[l-4] == 'a' && s[l-3] == 'l' && s[l-2] == 'a' && s[l-1] == '.')
            {
                c2=2;
            }
            else
            {
                c3=3;
            }
        }
        if(c1==1)
        {
            printf("Rainbow's\n");
        }
        else if(c2==2)
        {
              printf("Freda's\n");
        }
        else if(c3==3)
        {
            printf("OMG>.< I don't know!\n");
        }
    }
}

Thursday, November 13, 2014

Spoj Solution of 16487. Update the array ! Problem code: UPDATEIT

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<stack>
#include<queue>
#include<vector>
using namespace std;
long long array[10005];

int main()
{
    long long  i, j, k;
    long long test, n, u, qur, last, first, value, index;

    scanf("%lld", &test);
    while(test--)
    {
        scanf("%lld%lld", &n, &u);

        for(i=0; i<n; i++)
        {
            array[i]=0;
        }
        while(u--)
        {
            scanf("%lld%lld%lld", &first, &last, &value);
            array[first]+=value;
            array[last+1]-=value;
        }
        for(i=1; i<n; i++)
        {
            array[i] += array[i-1];
        }
        scanf("%lld", &qur);
        while(qur--)
        {
            scanf("%lld", &index);
            printf("%lld\n", array[index]);
        }
    }

    return 0;
}

CodeForces Solution of 313A. Ilya and Bank Account

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    long long  n, div1, div2, s1, s2;
    while(scanf("%lld", &n)==1)
    {
        if(n>=0)
        {
            printf("%lld\n", n);
        }
        else
        {
            div1 = n%10;
            s1= n/10;
            div2 = s1%10;
            s2 = (s1-div2)+div1;
            if(s1>=s2)
            {
                printf("%lld\n", s1);
            }
            else if(s1<s2)
            {
                printf("%lld\n", s2);
            }
        }
    }
}

CodeForces Solution of 92A. Chips

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    int n, m, i;
    while( scanf("%d%d", &n, &m)==2)
    {
        i=1;
        while(1)
        {
             if(m<i)
             {
                 break;
             }
             m = m-i;
             if(i==n)
             {
                 i=1;
                 i--;
             }
             i++;
        }
        printf("%d\n", m);
    }
}

CodeForces Solution of 1A. Theatre Square

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    double n, m, a;
    while(scanf("%lf%lf%lf", &n, &m, &a)==3)
    {
        printf("%0.0lf\n", ceil(n/a)*ceil(m/a));
    }
}

CodeForces Solution of 25A. IQ test

#include<iostream>
#include<cstdio>
using namespace std;
int a[105];

int main()
{
    int i, n;
    int c1, c2, odd, even;
    while(scanf("%d", &n)==1)
    {
        for(i=1; i<=n; i++)
        {
            scanf("%d", &a[i]);
        }
        c1=0, c2=0;
        for(i=1; i<=n; i++)
        {

            if(a[i]%2==0)
            {
                c1 +=1;
                even = i;
                continue;
            }
            if(a[i]%2!=0)
            {
                c2+=1;
                odd=i;
            }
        }
        if(c1>c2)
        {
            printf("%d\n", odd);
        }
        else
        {
            printf("%d\n", even);
        }
    }
}

CodeForces Solution of 25B. Phone numbers

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
char ch[105];

int main()
{
    int n, i, div;
    while(scanf("%d", &n)==1)
    {
        cin.ignore();
        for(i=1; i<=n; i++)
        {
            scanf("%c", &ch[i]);
        }
        for(i=1; i<=n; i++)
        {
            if(i>2 && i%2!=0 && i!=n)
            {
                printf("-");
                printf("%c", ch[i]);
            }
            else
            {
                printf("%c", ch[i]);
            }
        }
    }
}

Saturday, September 27, 2014

Solution of 1846 - Project File Dependencies. Problem code: PFDEP (SPOJ)

#include<iostream>
#include<cstdio>
#include<stack>
#include<queue>
#include<cstring>
#include<cmath>
using namespace std;

#define MAX 105

int deg[MAX];
int n, e;
struct compare
{
    bool operator() (const int& l, const int& r)
    {
        return l>r;
    }
};

vector<int>vec[MAX];
vector<int>rev[MAX];
priority_queue<int, vector<int>, compare > prq;
queue<int>myq;

void visit()
{
    int i, j, u, v;
    for(i=1; i<=n; i++)
    {
        if(deg[i]==0)
        {
            prq.push(i);
        }
    }
    while(!prq.empty())
    {
        u=prq.top();
        prq.pop();
        myq.push(u);

        for(i=0; i<rev[u].size(); i++)
        {
            v= rev[u][i];
            deg[v] -= 1;
            if(deg[v]==0)
            {
                prq.push(v);
            }
        }
    }
}

int main()
{
    int i, j;
    int u, v, m;
    while(scanf("%d%d", &n, &e)!=EOF)
    {
        memset(deg, 0, sizeof(deg));
        for(i=0; i<=n; i++)
        {
            vec[i].clear();
            rev[i].clear();
        }
        while(!prq.empty())
        {
            prq.pop();
        }
        while(!myq.empty())
        {
            myq.pop();
        }
        for(i=0; i<e; i++)
        {
            cin >> u >> m;
            for(j=0; j<m; j++)
            {
                cin >> v;
                deg[u]++;
                rev[v].push_back(u);
            }
        }
        visit();
        i=0;
        while(!myq.empty())
        {
            if(i) printf(" ");
            printf("%d", myq.front());
            myq.pop();
            i=1;
        }
        printf("\n");
    }
}

Tuesday, September 23, 2014

UVa Solution 10041 - Vito's Family

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1005];

int main()
{
    int test, n, i, j, d, s, sum, med;
    scanf("%d", &test);
    while(test--)
    {
        scanf("%d", &n);
        for(i=1; i<=n; i++)
        {
            scanf("%d", &a[i]);
        }
        sort(a, a+n+1);
        if(n%2==0)
        {
            d=n/2;
            med=a[d];
        }
        else
        {
            d=(n/2)+1;
            med=a[d];
        }
        sum=0;
        for(j=1; j<=n; j++)
        {
            s=abs(med-a[j]);
            sum=sum+s;
        }
        printf("%d\n", sum);
    }
}


Sunday, September 21, 2014

UVa Solution 11541 - Decoding

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    char A;
    int i, j, t, test;
    int val, len ;
    string s;
    scanf("%d", &test);
    getchar();
    for(t=1; t<=test; t++)
    {
        cin >> s;
        len=s.length();
        printf("Case %d: ", t);
        for(i=0; i<len; i++)
        {
            val=0;
            if(s[i]>='A' && s[i]<='Z')
            {
                A=s[i];
            }
            else if(s[i]>='0' && s[i]<='9')
            {
                val=val+s[i]-'0';
                i++;
                while(s[i]>='0' && s[i]<='9')
                {
                   val=val*10;
                   val=val+(s[i]-'0');
                   i++;
                }
                i--;
                for(j=0; j<val; j++)
                {
                    printf("%c", A);
                }
            }
        }
        printf("\n");
    }
}

Thursday, September 18, 2014

UVa Solution 10432 - Polygon Inside A Circle

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define PI acos(-1.0)

int main()
{
    double rad, n, area;

    while(scanf("%lf %lf", &rad, &n)==2)
    {
        area = n*(rad*rad)*sin((2*PI)/n)*0.5;
        printf("%0.3lf\n", area);
    }
}

UVa Solution 11743 - Credit Check

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    char ch[105];
    int i, j, k, test;
    int sum, sum1, sum2;
    int temp, m, d, ans;

    scanf("%d", &test);
    while(test--)
    {
        getchar();
        for(i=0; i<19; i++)
        {
            scanf("%c", &ch[i]);
        }
        sum=0;
        sum1=0;
        for(k=1; k<19; k=k+2)
        {
            if(ch[k-1]==' ')
            {
                k++;
            }
            sum1=sum1+(ch[k]-48);
        }
        sum2=0;
        for(j=0; j<19; j=j+2)
        {
            if(ch[j]==' ')
            {
                j++;
            }
            temp=2*(ch[j]-48);
            if(temp>9)
            {
                d=(temp%10);
                temp=(temp/10)+d;
                sum2=sum2+temp;
            }
            else
            {
                sum2=sum2+temp;
            }
        }
        sum=(sum1+sum2);
        ans=(sum%10);
        if(ans==0)
        {
            printf("Valid\n");
        }
        else
        {
            printf("Invalid\n");
        }
    }
}

Tuesday, September 16, 2014

UVa Solution 10347 - Medians

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    double m1, m2, m3;
    double  a, b, c, s, area;
    while(scanf("%lf%lf%lf", &m1, &m2, &m3)==3)
    {
        a=sqrt((2*m2*m2)+(2*m3*m3)-(m1*m1))*0.666666666;
        b=sqrt((2*m1*m1)+(2*m3*m3)-(m2*m2))*0.666666666;
        c=sqrt((2*m1*m1)+(2*m2*m2)-(m3*m3))*0.666666666;

        s=(a+b+c)/2;
        area = sqrt(s*(s-a)*(s-b)*(s-c));

        if(area>0)
        {
            printf("%0.3lf\n", area);
        }
        else
        {
            area=-1;
            printf("%0.3lf\n", area);
        }
    }
}

UVa Solution 10195 - The Knights Of The Round Table

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    double  a, b, c;
    double rad, s, v;
    while(scanf("%lf%lf%lf", &a, &b, &c)==3)
    {
        if(a<=0 || b<=0 || c<=0)
        {
             printf("The radius of the round table is: 0.000\n");
             continue;
        }
        s = (a+b+c)/2;
        v = sqrt(s*(s-a)*(s-b)*(s-c));
        rad = (v/s);
        printf("The radius of the round table is: %0.3lf\n", rad);
    }
}

UVa Solution 11152 - Colourful Flowers

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define PI acos(-1.0)

int main()
{
    double  a, b, c, v, s;
    double A_sun, A_v, A_rose;
    double r_sun, d_sun, r_rose;

    while(scanf("%lf%lf%lf", &a, &b, &c)==3)
    {
        s = (a+b+c)/2;
        v = sqrt(s*(s-a)*(s-b)*(s-c));

        d_sun = (a*b*c)/(2*v);
        r_sun = (d_sun/2);
        A_sun = (PI*r_sun*r_sun)-v;

        r_rose = (v/s);
        A_rose = (PI*r_rose*r_rose);

        A_v = v-A_rose;

        printf("%0.4lf %0.4lf %0.4lf\n", A_sun, A_v, A_rose);
    }
}

UVa Solution 10522 - Height to Area

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    int t, test;
    double a, b, c, s, area;
    double A, B, C;
    scanf("%d", &test);
    t=0;
    while(t!=test)
    {
        scanf("%lf%lf%lf", &a, &b, &c);
        if(a<=0 || b<=0 || c<=0)
        {
            printf("These are invalid inputs!\n");
            t++;
            continue;
        }
        A=(1/a);
        B=(1/b);
        C=(1/c);
        s=(A+B+C)*(B+C-A)*(A-B+C)*(A+B-C);
        if(s<0)
        {
            printf("These are invalid inputs!\n");
            t++;
        }
        else
        {
            area=(1/s);
            printf("%0.3lf\n", sqrt(area));
        }
    }
}

Monday, September 15, 2014

UVa Solution 11364 - Parking

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[105];
int main()
{
    int test, p, i, n;
    scanf("%d", &test);
    while(test--)
    {
        scanf("%d", &n);
        for(i=0; i<n; i++)
        {
            scanf("%d", &a[i]);
        }
        sort(a, a+n);
        for(i=0; i<n; i++)
        {
            p=a[n-1]-a[0];
        }
        printf("%d\n", p*2);
    }
}

UVa Solution No:2 11219 - How old are you?

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    string s1, s2;
    int i, j, t, test, age;
    int d1, d2, m1, m2, y1, y2;

    cin >> test;
    for(t=1; t<=test; t++)
    {
        cin >> s1;
        cin >> s2;
        for(i=0; s1[i]!='\0'; i++)
        {
            if(i==0)
            {
                d1=s1[i]-48;
                d1=d1*10;
            }
            if(i==1)
            {
                d1= d1+(s1[i]-48);
            }
            if(i==3)
            {
                m1=s1[i]-48;
                m1=m1*10;
            }
            if(i==4)
            {
                m1= m1+(s1[i]-48);
            }
            if(i>=6 || i>=9)
            {
                if(i==6)
                {
                    y1 = s1[i]-48;
                }
                if(i==9)
                {
                    break;
                }
                y1 = y1*10;
                y1 = y1+(s1[i+1]-48);
            }
        }
        for(j=0; s2[j]!='\0'; j++)
        {
            if(j==0)
            {
                d2=s2[j]-48;
                d2=d2*10;
            }
            if(j==1)
            {
                d2=d2+(s2[j]-48);
            }
            if(j==3)
            {
                m2=s2[j]-48;
                m2=m2*10;
            }
            if(j==4)
            {
                m2=m2+(s2[j]-48);
            }

            if(j>=6 || j>=9)
            {
                if(j==6)
                {
                    y2 = s2[j]-48;
                }
                if(j==9)
                {
                    break;
                }
                y2 = y2*10;
                y2 = y2+(s2[j+1]-48);
            }
        }
        age=y1-y2;
        if(m1==m2)
        {
            if(d1<d2)
            {
                age=age-1;
            }
        }
        if(m1<m2)
        {
            age=age-1;
        }

        if(age<0)
        {
            printf("Case #%d: Invalid birth date\n", t);
        }
        else if(age>130)
        {
            printf("Case #%d: Check birth date\n", t);
        }
        else
        {
            printf("Case #%d: %d\n", t, age);
        }
    }
    return 0;
}


UVa Solution 11219 - How old are you?

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    int t, test, age;
    int d1, m1, y1;
    int d2, m2, y2;
    scanf("%d", &test);
    for(t=1; t<=test; t++)
    {
        scanf("%d/%d/%d", &d1, &m1, &y1);
        scanf("%d/%d/%d", &d2, &m2, &y2);
        age = y1-y2;
        if(m1==m2)
        {
            if(d1<d2)
            {
                age=age-1;
            }
        }
        if(m1<m2)
        {
            age=age-1;
        }

        if(age<0)
        {
            printf("Case #%d: Invalid birth date\n", t);
        }
        else if(age>130)
        {
            printf("Case #%d: Check birth date\n", t);
        }
        else
        {
            printf("Case #%d: %d\n", t, age);
        }
    }
}

Tuesday, September 9, 2014

UVa Solution 438 - The Circumference of the Circle

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
#define PI 3.141592653589793

int main()
{
    double x1, x2, x3, y1, y2, y3;
    double a, b, c, d, s, r, area, cir;
    while(cin>>x1>> y1>>x2>>y2>>x3>>y3)
    {
        a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
        b=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
        c=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
        s=(a+b+c)/2;
        area=sqrt(s*(s-a)*(s-b)*(s-c));
        d=(a*b*c)/(2*area);
        r=(d/2);
        cir=(2*PI*r);
        printf("%0.2lf\n", cir);
    }
    return 0;
}

Saturday, September 6, 2014

UVa Solution 10931 - Parity

#include<cstdio>
#include<iostream>
using namespace std;

int main()
{
      int a[105], count;
      int bin ,i , j;
      while(scanf("%d",&bin)==1)
      {
          if(bin==0)
          {
              break;
          }
          i=0;
          while(bin>0)
          {
               a[i]=bin%2;
               i++;
               bin=bin/2;
          }
          count=0;
          cout <<"The parity of ";
          for(j=i-1;j>=0;j--)
          {
                printf("%d",a[j]);
                if(a[j]==1)
                {
                  count=count+1;
                }
          }
          cout << " is " << count << " (mod 2)." << endl;
      }
 }

Thursday, September 4, 2014

UVa Solution 11942 - Lumberjack Sequencing

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
using namespace std;

int main()
{
    int a[105];
    int test, i, n, count, count2, temp;
    printf("Lumberjacks:\n");
    scanf("%d", &test);
    while(test--)
    {
        count=1;
        count2=0;
        temp=0;
        for(i=0; i<10; i++)
        {
            scanf("%d", &n);
            if(temp>n)
            {
                count++;
                temp=n;
            }
            else if(temp<n)
            {
                count2++;
                temp=n;
            }
        }
        if(count==10 || count2==10)
        {
            printf("Ordered\n");
        }
        else
        {
           printf("Unordered\n");
        }
    }
}

UVa Solution 11559 - Event Planning

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
using namespace std;

int main()
{
    int n, b, h, w, p, cost, i, j, temp, a;
    while(scanf("%d%d%d%d", &n, &b, &h, &w)==4)
    {
        cost=b+100;
        for(i=0; i<h; i++)
        {
            scanf("%d", &p);
            temp=0;
            for(j=0; j<w; j++)
            {
                scanf("%d", &a);
                if(a>=n)
                {
                    temp=p*n;
                    if(cost>temp)
                    {
                        cost=temp;
                    }
                }
            }
        }
        if(cost<b)
        {
            printf("%d\n",cost);
        }
        else
        {
            printf("stay home\n");
        }
    }
}

Wednesday, September 3, 2014

UVa Solution 12468 - Zapping

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    int a, b, change, change1, change2;
    while(scanf("%d%d", &a, &b)==2)
    {
        if(a==-1 && b==-1)
        {
            break;
        }
        if(a>=b)
        {
            change1=(100-a)+b;
            change2=a-b;
            if(change1>change2)
            {
                change=change2;
            }
            else
            {
                change=change1;
            }
        }
        if(b>a)
        {
            change1=((100-b)+a);
            change2=b-a;
            if(change1>change2)
            {
                change=change2;
            }
            else
            {
                change=change1;
            }
        }
        printf("%d\n", change);
    }
}

Monday, September 1, 2014

UVa Solution 12626 - I ❤ Pizza

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;

int main()
{
    string s;
    int i, test, len, count;
    int countM, countA, countR, countG, countI, countT;
    scanf("%d", &test);
    while(test--)
    {
        cin >> s;
        len=s.length();
        countM = countA = countR = countG = countI = countT =0;
        for(i=0; i<len; i++)
        {
            if(s[i]=='M')
            {
                countM++;
            }
            if(s[i]=='A')
            {
                countA++;
            }
            if(s[i]=='R')
            {
                countR++;
            }
            if(s[i]=='G')
            {
                countG++;
            }
            if(s[i]=='I')
            {
                countI++;
            }
            if(s[i]=='T')
            {
                countT++;
            }
        }
        count=0;
        while(1)
        {
            if(countA>=3 && countR>=2 && countG>=1 && countI>=1 && countT>=1 && countM>=1)
            {
                count=count+1;
                countA=countA-3;
                countR=countR-2;
                countG=countG-1;
                countI=countI-1;
                countT=countT-1;
                countM=countM-1;
            }
            else
            {
                break;
            }
        }
        printf("%d\n", count);
    }
    return 0;
}

UVa Solution 10340 - All in All

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

int main()
{
    string s, t;
    int i, j, len_s, len_t, temp;
    while(cin >> s >> t)
    {
        len_s=s.length();
        len_t=t.length();
        temp=0;
        for(i=0; i<len_s; i++)
        {
            for(j=0; j<len_t; j++)
            {
                if(s[i]==t[j])
                {
                    temp=temp+1;
                    i++;
                }
            }
        }
        if(temp==len_s)
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n");
        }
    }
    return 0;
}

Friday, August 29, 2014

UVa Solution 10714 - Ants

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    int test, len, num, pos, min, max, sub;
    scanf("%d", &test);
    while(test--)
    {
        scanf("%d%d", &len, &num);
        min = max = 0;
        while(num--)
        {
            scanf("%d", &pos);
            sub = (len-pos);
            if(sub>=pos)
            {
                if(max<sub)
                {
                    max=sub;
                }
                if(min<pos)
                {
                    min=pos;
                }
            }
            if(sub<pos)
            {
                if(max<pos)
                {
                    max=pos;
                }
                if(min<sub)
                {
                    min=sub;
                }
            }
        }
        printf("%d %d\n", min, max);
    }
    return 0;
}


Friday, August 22, 2014

C/C++ Code for Ternary Search

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;


int main()
{
    int i, n, val, low, high, mid1, mid2, a[50];
    printf("Enter the size of an array : ");
    scanf("%d", &n);
    printf("Enter the elements : ");

    for(i=0; i<n; i++)
    {
        scanf("%d", &a[i]);
    }
    sort(a, a+n);
    printf("The sorted array is : ");
    for(i=0; i<n; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");

    printf("Enter the element which you want to search : ");
    scanf("%d", &val);
    low=0;
    high=n-1;

    while(low<=high)
    {
        mid1=((low+high)/2);
        mid2=(mid1*2);

        if(val==a[mid1])
        {
            printf("Position is : %d.\n", mid1+1);
            break;
        }
        else if(a[mid1]>val)
        {
            high=mid1-1;
        }
        else if(val==a[mid2])
        {
            printf("Position is : %d.\n", mid2+1);
            break;
        }
        else if(a[mid2]<val)
        {
             low=mid2+1;
        }
        else
        {
            low=mid1+1;
            high=mid2-1;
        }
    }
    return 0;
}

C/C++ Code for Finite State Machines (Finite Automata and String Matching)

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

void Divisible_By_Three()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=0;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=1;
            }
            else if(c=='1')
            {
                s=2;
            }
        }
    }
    if(s==0)
    {
        cout << "Divisible by 3" << endl;
    }
    else
    {
        cout<< "Not Divisible by 3" << endl;
    }
    cout << "Enter your Divisor: ";
}


void Divisible_By_Four()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }

        else if(s==3)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
    }
    if(s==0)
    {
        cout << "Divisible by 4" << endl;
    }
    else
    {
        cout<< "Not Divisible by 4" << endl;
    }
    cout << "Enter your Divisor: ";
}

void Divisible_By_Five()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=0;
            }
        }
        else if(s==3)
        {
            if(c=='0')
            {
                s=1;
            }
            else if(c=='1')
            {
                s=2;
            }
        }
        else if(s==4)
        {
            if(c=='0')
            {
                s=3;
            }
            else if(c=='1')
            {
                s=4;
            }
        }
    }
    if(s==0)
    {
        cout << "Divisible by 5" << endl;
    }
    else
    {
        cout<< "Not Divisible by 5" << endl;
    }
    cout << "Enter your Divisor: ";
}

void Divisible_By_Six()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=5;
            }
        }
        else if(s==3)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==4)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==5)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=5;
            }
        }
    }
    if(s==0)
    {
        cout << "Divisible by 6" << endl;
    }
    else
    {
        cout<< "Not Divisible by 6" << endl;
    }
    cout << "Enter your Divisor: ";
}

void Divisible_By_Seven()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=5;
            }
        }
        else if(s==3)
        {
            if(c=='0')
            {
                s=6;
            }
            else if(c=='1')
            {
                s=0;
            }
        }
        else if(s==4)
        {
            if(c=='0')
            {
                s=1;
            }
            else if(c=='1')
            {
                s=2;
            }
        }
        else if(s==5)
        {
            if(c=='0')
            {
                s=3;
            }
            else if(c=='1')
            {
                s=4;
            }
        }
        else if(s==6)
        {
            if(c=='0')
            {
                s=5;
            }
            else if(c=='1')
            {
                s=6;
            }
        }
    }
    if(s==0)
    {
        cout << "Divisible by 7" << endl;
    }
    else
    {
        cout<< "Not Divisible by 7" << endl;
    }
    cout << "Enter your Divisor: ";
}

void Divisible_By_Eight()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=5;
            }
        }
        else if(s==3)
        {
            if(c=='0')
            {
                s=6;
            }
            else if(c=='1')
            {
                s=7;
            }
        }
        else if(s==4)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==5)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==6)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=5;
            }
        }
        else if(s==7)
        {
            if(c=='0')
            {
                s=6;
            }
            else if(c=='1')
            {
                s=7;
            }
        }
    }
      if(s==0)
    {
        cout << "Divisible by 8" << endl;
    }
    else
    {
        cout<< "Not Divisible by 8" << endl;
    }
    cout << "Enter your Divisor: ";
}

void Divisible_By_Nine()
{
    char c;
    int s=0;
    cout << "Enter Your string : ";
    while(cin.get(c))
    {
        if(c=='\n')
        {
            break;
        }
        if(s==0)
        {
            if(c=='0')
            {
                s=0;
            }
            else if(c=='1')
            {
                s=1;
            }
        }
        else if(s==1)
        {
            if(c=='0')
            {
                s=2;
            }
            else if(c=='1')
            {
                s=3;
            }
        }
        else if(s==2)
        {
            if(c=='0')
            {
                s=4;
            }
            else if(c=='1')
            {
                s=5;
            }
        }
        else if(s==3)
        {
            if(c=='0')
            {
                s=6;
            }
            else if(c=='1')
            {
                s=7;
            }
        }
        else if(s==4)
        {
            if(c=='0')
            {
                s=8;
            }
            else if(c=='1')
            {
                s=0;
            }
        }
         else if(s==5)
        {
            if(c=='0')
            {
                s=1;
            }
            else if(c=='1')
            {
                s=2;
            }
        }
         else if(s==6)
        {
            if(c=='0')
            {
                s=3;
            }
            else if(c=='1')
            {
                s=4;
            }
        }
        else if(s==7)
        {
            if(c=='0')
            {
                s=5;
            }
            else if(c=='1')
            {
                s=6;
            }
        }
        else if(s==8)
        {
            if(c=='0')
            {
                s=7;
            }
            else if(c=='1')
            {
                s=8;
            }
        }
    }
    if(s==0)
    {
        cout << "Divisible by 9" << endl;
    }
    else
    {
        cout<< "Not Divisible by 9" << endl;
    }
    cout << "Enter your Divisor: ";
}

int main()
{
    int div;
    cout << "Enter your divisor : ";
    while(cin >> div)
    {
        if(div<3 || div>9)
        {
            cout << "Conditon is Not Found!!!" << endl;
            break;
        }
        if(div==3)
        {
            cin.ignore();
            Divisible_By_Three();
        }
        if(div==4)
        {
            cin.ignore();
            Divisible_By_Four();
        }
        if(div==5)
        {
            cin.ignore();
            Divisible_By_Five();
        }
        if(div==6)
        {
            cin.ignore();
            Divisible_By_Six();
        }
        if(div==7)
        {
            cin.ignore();
            Divisible_By_Seven();
        }
        if(div==8)
        {
            cin.ignore();
            Divisible_By_Eight();
        }
        if(div==9)
        {
            cin.ignore();
            Divisible_By_Nine();
        }
    }
    return 0;
}



C Code for Newton's Forward Difference Interpolation

#include<stdio.h>
#include<math.h>
int main()
{
  float x[25], y[25], ques, ans, a, b, h;
  int i, j , num;

  printf("Enter the Number of elements:");
  scanf("%d",&num);
  printf("Enter the elements of x:");
  for(i=1 ;i<=num; i++)
   {
        scanf("%f",&x[i]);
   }
   printf("Enter the elements of y:");
   for(i=1;i<=num;i++)
   {
    scanf("%f",&y[i]);
   }

  h=x[2]-x[1];
  printf("Enter the value you want to find: ");
  scanf("%f", &ques);
  a=(ques-x[1])/h;
  b=1;
  ans=y[1];

    for(i=1; i<=(num-1); i++)
    {
       for(j=1; j<=(num-i); j++)
        {
              y[j]=y[j+1]-y[j];
        }
        b=b*(a-i+1)/i;
        ans=ans+b*y[1];
    }
   printf("Answer is %6.5f", ans);
   return 0;
}

C Code for Lagrange's Interpolation Formula

#include<stdio.h>
#include<math.h>

int main()
{
  float x[10],y[10], temp, ans[10], sum, point;
  int i,j,k=0,num;

  printf("Enter your points : ");
  scanf("%d",&num);

  for(i=0; i<num; i++)
  {
    printf("x%d is: ", i);
    scanf("%f",&x[i]);
    printf("y%d is: ", i);
    scanf("%f",&y[i]);
  }

  printf("Enter your interpolation number: ");
  scanf("%f",&point);

  for(i=0;i<num;i++)
  {
    temp = 1;
    k = i;
    for(j=0;j<num;j++)
    {
      if(k==j)
      {
        continue;
      }
      else
      {
        temp = temp * ((point-x[j])/(x[k]-x[j]));
      }
    }
    ans[i]=y[i]*temp;
  }

  for(i=0;i<num;i++)
  {
     sum = sum + ans[i];
  }

  printf("f(%.1f) = %f ", point, sum);
  return 0;
}

Monday, June 9, 2014

UVa Solution 900 - Brick Wall Patterns

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long a[105], i;

void fib()
{
    a[0]=1;
    a[1]=1;
    for(i=2; i<51; i++)
    {
        a[i]= a[i-1]+a[i-2];
    }
    return;
}

int main()
{
    fib();
    long long n;
    while(scanf("%lld", &n)==1)
    {
        if(n==0)
        {
            break;
        }
        printf("%lld\n", a[n]);
    }
    return 0;
}

UVa Solution 11715 - Car

#include<iostream>
#include<cstdio>
#include<cmath>
int main()
{
    double u, v, s, t, a;
    int test=1, n;
    while(scanf("%d", &n)==1)
    {
        if(n==0)
        {
            break;
        }
        if(n==1)
        {
            scanf("%lf%lf%lf", &u, &v, &t);
            s=(u+v)*t/2;
            a=(v-u)/t;
            printf("Case %d: %0.3lf %0.3lf\n", test, s, a);
        }
        else if(n==2)
        {
            scanf("%lf%lf%lf", &u, &v, &a);
            t=(v-u)/a;
            s=(u+v)*t/2;
            printf("Case %d: %0.3lf %0.3lf\n", test, s, t);
        }
        else if(n==3)
        {
            scanf("%lf%lf%lf", &u, &a, &s);
            v=sqrt((u*u)+(2*a*s));
            t=(v-u)/a;
            printf("Case %d: %0.3lf %0.3lf\n", test, v, t);
        }
        else if(n==4)
        {
            scanf("%lf%lf%lf", &v, &a, &s);
            u=sqrt((v*v)-(2*a*s));
            t=(v-u)/a;
            printf("Case %d: %0.3lf %0.3lf\n", test, u, t);
        }
        test++;
    }
    return 0;
}

Saturday, April 12, 2014

UVa Solution 11000 - Bee


#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
    long long n, a, b, fib, arr[105];
    while(scanf("%lld", &n)==1)
    {
        if(n==-1)
        {
            break;
        }
        a=1;
        b=1;
        for(int i=0; i<=n; i++)
        {
            fib=a+b;
            arr[i]=fib-1;
            a=b;
            b=fib;
        }
        printf("%lld %lld\n", arr[n-1], arr[n]);
    }
    return 0;
}

Friday, April 11, 2014

UVa Solution 12592 - Slogan Learning of Princess


#include<iostream>
#include<cstdio>
#include<map>
#include<sstream>
#include<cstring>
#include<istream>
using namespace std;
map<string, string>M;

int main()
{
    string s1, s2;
    int test, n;
    cin >> test;
    cin.ignore();
    while(test--)
    {
        getline(cin, s1);
        getline(cin, s2);
        M[s1] = s2;
    }
    cin>>n;
    cin.ignore();
    while(n--)
    {
        string s3;
        getline(cin, s3);
        cout << M[s3] <<endl;
    }
    return 0;
}

Wednesday, April 9, 2014

UVa Solution 10282 - Babelfish

#include<iostream>
#include<cstdio>
#include<map>
#include<sstream>
using namespace std;
#define MAX 1005
map<string, string>M;
char line[MAX];

int main()
{
    string s1, s2;
    while(gets(line))
    {
        if(line[0]=='\0') break;
        stringstream ss(line);
        ss >> s1;
        ss >> s2;
        M[s2] = s1;
    }
    string s3;
    while(cin >> s3)
    {
        if(M[s3].length()==0)
        {
          cout << "eh" << endl;
        }
        else
        {
          cout << M[s3] <<endl;
        }
    }
    return 0;
}

Compare equality of two string in C

#include <stdio.h> #include<string.h> int main() {     char* country = "Bangladesh";     char* country2;     ...