Thursday, November 13, 2014

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

Compare equality of two string in C

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