Wednesday, January 22, 2014

UVa 1124 - Celebrity Jeopardy solution

Problem link :  UVa 1124 - Celebrity Jeopardy

Solution : 


#include<stdio.h>
int main()
{
    char a[100];
    while(gets(a))
    {
        puts(a);
    }
    return 0;
}




UVa 913 - Joana and the Odd Numbers solution

Problem link :  UVa 913 - Joana and the Odd Numbers

Solution : 


#include<stdio.h>
int main()
{
    long long int a,n;
    while(scanf("%lld",&n)==1)
    {
        a=(((n*(n+2)/2)*3)-6);
        printf("%lld\n",a);
    }
    return 0;
}




UVa 694 - The Collatz Sequence solution

Problem link :  UVa 694 - The Collatz Sequence

Solution : 


#include<stdio.h>
int main()
{
    long long int a,l,c,i,m=0,n;
    while(scanf("%lld %lld",&a,&l)==2)
    {
        if(a<0 && l<0)
            break;
        c=0; i=a; m++;
        while(a<=l)
        {
            c++;
            if(a==1)
                break;
            if(a%2==0)
                a=a/2;
            else
                a=3*a+1;
        }
        printf("Case %lld: A = %lld, limit = %lld, number of terms = %lld\n",m,i,l,c);
    }
    return 0;
}


UVa 686 - Goldbach's Conjecture (II) solution

Problem link :  UVa 686 - Goldbach's Conjecture (II)

Solution : 


#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;

bool Isp(int n)
{
    int i,j;
    if(n==1)
    return 0;

    if(n==2)
    return 1;

    if(n%2==0)
    return 0;

    int l=sqrt(n);

    for(i=3;i<=l;i+=2)
    {
        if(n%i==0)
        return 0;
    }
    return 1;
}
int main()
{
    int a,b,i,m,n,c;
    while(scanf("%d",&n)==1)
    {
        if(n==0)
        break;

        a=0,b=0,c=0;

        for(i=n-1;i>=n/2;i--)
        {
            if(Isp(i))
            {
                m=n-i;
                if(Isp(m))
                {
                    c++;
                }
            }
        }

        printf("%d\n",c);
    }
    return 0;
}



UVa 591 - Box of Bricks solution

Problem link :  UVa 591 - Box of Bricks

Solution : 


#include<stdio.h>
int main()
{
    int a[105],n,sum,avg,k,i,st=1;
    while(scanf("%d",&n)==1)
    {
        if(n==0) break;
        sum=0;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        avg=sum/n; k=0;
        for(i=1;i<=n;i++)
        {
            if(a[i]>avg) k+=(a[i]-avg);
        }
        printf("Set #%d\n",st); st++;
        printf("The minimum number of moves is %d.\n\n",k);
    }
    return 0;
}




UVa 579 - Clock Hands solution

Problem link :  UVa 579 - Clock Hands

Solution : 


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
    double h,m,t,i,j,k,l,n,a;
    while(scanf("%lf:%lf", &h, &m)==2)
    {
        if(h==0 && m==0)
            break;

        i=((h*30)+(m/2));
        j=(m*6);

        t=i-j;

        if(t<0)
            t*=-1;

        if(t>180)
            t=360-t;

        printf("%.3lf\n",t);
    }
    return 0;
}


UVa 543 - Goldbach's Conjecture solution

Problem link :  UVa 543 - Goldbach's Conjecture

Solution : 


#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;

bool Isp(int n)
{
    int i,j;
    if(n==1)
    return 0;

    if(n==2)
    return 1;

    if(n%2==0)
    return 0;

    int l=sqrt(n);

    for(i=3;i<=l;i+=2)
    {
        if(n%i==0)
        return 0;
    }
    return 1;
}
int main()
{
    int a,b,i,m,n;
    while(scanf("%d",&n)==1)
    {
        if(n==0)
        break;

        else if(n<6 && n>0)
            {
                printf("Goldbach's conjecture is wrong.\n");
                continue;
            }

        a=0,b=0;

        for(i=n-1;i>=n/2;i--)
        {
            if(Isp(i))
            {
                m=n-i;
                if(Isp(m))
                {
                    if(i%2==1 && m%2==1)
                    {
                        a=i;
                        b=m;
                        break;
                    }
                }
            }
        }

         if(a>0 && b>0 && a<=b)
            printf("%d = %d + %d\n",n,a,b);
        else if(a>0 && b>0 && b<a)
            printf("%d = %d + %d\n",n,b,a);
        else
            printf("Goldbach's conjecture is wrong.\n");
    }
    return 0;
}