Friday, February 19, 2016

UVA 10038 - Jolly Jumpers

#include<bits/stdc++.h>
using namespace std;
int main()
{

    int t,m,l,flg=0;
    while(cin>>t){
            int a[t];
        set<int>s;
        cin>>a[0];
        for(int i=1; i<t; i++){
            cin>>a[i];
            m=abs(a[i-1]-a[i]);
            s.insert(m);

        }
        if(s.size()!=t-1)
            flg=1;
        if(s.count(0)>0)
            flg=1;
        if((s.upper_bound(t-1))!=s.end())
            flg=1;
        if(flg==0)
             cout<<"Jolly"<<endl;

        else
           cout<<"Not jolly"<<endl;
        s.clear();
        flg=0;
    }

    return 0;

}

UVA 100 - The 3n + 1 problem

#include<bits/stdc++.h>
int cycle(int x);
using namespace std;
int main()
{
    int i , j, cy,high=0;
    while(cin>>i>>j){
        cout<<i<<" "<<j<<" ";
        if(i>j)
            swap(i,j);
        for(int m=i; m<=j; m++){
        cy=cycle(m);
        if(cy>high)
            high=cy;
        }
        cout<<high<<endl;
        high=0;

    }

    return 0;

}
int cycle(int x)
{
    int num,cnt=0;
    num=x;
    while(1){
        cnt++;
        if(num==1)
            break;
        else{
            if(num%2==0)
                num/=2;
            else
                num=(num*3)+1;
        }
    }
    return cnt;

}

Tuesday, February 16, 2016

UVA 11417 - GCD

#include<bits/stdc++.h>
using namespace std;
int gcd(int x, int y);
int main()
{
    int G=0 , N;
    while(cin>>N){
        if(N==0)
            break;
        for(int i=1; i<N; i++){
            for(int j=i+1; j<=N; j++)
                G+=gcd(i,j);
        }
        cout<<G<<endl;
        G=0;
    }

    return 0;
}
int gcd(int x , int y)
{
    int gcd=0;
    while(x!=y){
        if(x>y)
            x-=y;
        else
            y-=x;
    }
    gcd=x;
    return gcd;

}

UVA 10035 - Primary Arithmetic

#include<stdio.h>
int main()
{
long int a,b;
int count,c;
while(scanf(“%lu %lu”,&a,&b)&&a!=0&&b!=0)
             {
                     count=c=0;
                                while(a||b)
                                   {
                                    c=(a%10+b%10+c)/10;
                                     a=a/10;
                                     b=b/10;
                                     count=count+c;
                                   }
                      if(!count)
                     printf(“No carry operation.\n”);
                     else if(!(count^1))
                     printf(“1 carry operation.\n”);
                     else
                     printf(“%d carry operations.\n”,count);
            }
return 0;
}

UVA 10424 - Love Calculator

#include<bits/stdc++.h>
using namespace std;
int digit(int x);
int main()
{
    char name1[30] , name2[30], n1[30],n2[30];
    int j=0, k=0;
    float num=0,num1=0,digit1=0,digit2=0;
    float mean=0;
    while(gets(name1)) {
        gets(name2);
        for(int i=0; i<strlen(name1); i++) {
            name1[i]=tolower(name1[i]);
            if(isalpha(name1[i])>0) {
                n1[j]=name1[i];
                j++;
            }
        }
        n1[j]='\0';
        j=0;
        for(int i=0; i<strlen(name2); i++) {
            name2[i]=tolower(name2[i]);
            if(isalpha(name2[i])>0) {
                n2[k]=name2[i];
                k++;
            }
        }
        n2[k]='\0';
        k=0;
        for(int i=0; i<strlen(n1); i++) {
            if(n1[i]=='a')
                num+=1;
            else if(n1[i]=='b')
                num+=2;
            else if(n1[i]=='c')
                num+=3;
            else if(n1[i]=='d')
                num+=4;
            else if(n1[i]=='e')
                num+=5;
            else if(n1[i]=='f')
                num+=6;
            else if(n1[i]=='g')
                num+=7;
            else if(n1[i]=='h')
                num+=8;
            else if(n1[i]=='i')
                num+=9;
            else if(n1[i]=='j')
                num+=10;
            else if(n1[i]=='k')
                num+=11;
            else if(n1[i]=='l')
                num+=12;
            else if(n1[i]=='m')
                num+=13;
            else if(n1[i]=='n')
                num+=14;
            else if(n1[i]=='o')
                num+=15;
            else if(n1[i]=='p')
                num+=16;
            else if(n1[i]=='q')
                num+=17;
            else if(n1[i]=='r')
                num+=18;
            else if(n1[i]=='s')
                num+=19;
            else if(n1[i]=='t')
                num+=20;
            else if(n1[i]=='u')
                num+=21;
            else if(n1[i]=='v')
                num+=22;
            else if(n1[i]=='w')
                num+=23;
            else if(n1[i]=='x')
                num+=24;
            else if(n1[i]=='y')
                num+=25;
            else if(n1[i]=='z')
                num+=26;

        }
        for(int i=0; i<strlen(n2); i++) {
            if(n2[i]=='a')
                num1+=1;
            else if(n2[i]=='b')
                num1+=2;
            else if(n2[i]=='c')
                num1+=3;
            else if(n2[i]=='d')
                num1+=4;
            else if(n2[i]=='e')
                num1+=5;
            else if(n2[i]=='f')
                num1+=6;
            else if(n2[i]=='g')
                num1+=7;
            else if(n2[i]=='h')
                num1+=8;
            else if(n2[i]=='i')
                num1+=9;
            else if(n2[i]=='j')
                num1+=10;
            else if(n2[i]=='k')
                num1+=11;
            else if(n2[i]=='l')
                num1+=12;
            else if(n2[i]=='m')
                num1+=13;
            else if(n2[i]=='n')
                num1+=14;
            else if(n2[i]=='o')
                num1+=15;
            else if(n2[i]=='p')
                num1+=16;
            else if(n2[i]=='q')
                num1+=17;
            else if(n2[i]=='r')
                num1+=18;
            else if(n2[i]=='s')
                num1+=19;
            else if(n2[i]=='t')
                num1+=20;
            else if(n2[i]=='u')
                num1+=21;
            else if(n2[i]=='v')
                num1+=22;
            else if(n2[i]=='w')
                num1+=23;
            else if(n2[i]=='x')
                num1+=24;
            else if(n2[i]=='y')
                num1+=25;
            else if(n2[i]=='z')
                num1+=26;

        }
    if(num!=0){
    digit1=digit(num);
    digit2=digit(num1);
    if(digit1>digit2)
        mean=(digit2*100)/digit1;
    else
        mean=(digit1*100)/digit2;
    printf("%.2f %%\n",mean);
    }
    else{
        mean=0;
        printf("%.2f %%\n",mean);
    }
    num=0,num1=0,digit1=0,digit2=0,mean=0;

    }
    return 0;
}
int digit(int x)
{
    int num=x,sum=0,digit=0;
    if(num<10)
        return (x);
    else{
    while(num>9){
        sum=0;
        while(num>0){
            digit=num%10;
            num/=10;
            sum+=digit;
        }
        num=sum;
    }
    return (num);
    sum=0;
    digit=0;
    }
}