Pages

Friday, 26 October 2012

UVA - 392 - Polynomial Showdown

#include <stdio.h>
#include <stdbool.h>

int main()
{
    int c8,c7,c6,c5,c4,c3,c2,c1,c0;
    while(scanf("%d %d %d %d %d %d %d %d %d",
          &c8,&c7,&c6,&c5,&c4,&c3,&c2,&c1,&c0)==9){
              bool flag=false;
          if(c8!=0){
              if(c8<0){
                printf("-");
              }
              if((int)fabs(c8)!=1){
                printf("%d",(int)fabs(c8));
              }
            printf("x^8");
            flag=true;
          }
          if(c7!=0){
              if(flag){
                  if(c7<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c7<0)
                    printf("-");
              }
              if((int)fabs(c7)!=1){
                printf("%d",(int)fabs(c7));
              }
            printf("x^7");
            flag=true;
          }
          if(c6!=0){
              if(flag){
                  if(c6<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c6<0)
                    printf("-");
              }
              if((int)fabs(c6)!=1){
                printf("%d",(int)fabs(c6));
              }
            printf("x^6");
            flag=true;
          }
          if(c5!=0){
              if(flag){
                  if(c5<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c5<0)
                    printf("-");
              }
              if((int)fabs(c5)!=1){
                printf("%d",(int)fabs(c5));
              }
            printf("x^5");
            flag=true;
          }
          if(c4!=0){
              if(flag){
                  if(c4<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c4<0)
                    printf("-");
              }
              if((int)fabs(c4)!=1){
                printf("%d",(int)fabs(c4));
              }
            printf("x^4");
            flag=true;
          }
          if(c3!=0){
              if(flag){
                  if(c3<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c3<0)
                    printf("-");
              }
              if((int)fabs(c3)!=1){
                printf("%d",(int)fabs(c3));
              }
            printf("x^3");
            flag=true;
          }
          if(c2!=0){
              if(flag){
                  if(c2<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c2<0)
                    printf("-");
              }
              if((int)fabs(c2)!=1){
                printf("%d",(int)fabs(c2));
              }
            printf("x^2");
            flag=true;
          }
          if(c1!=0){
              if(flag){
                  if(c1<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c1<0)
                    printf("-");
              }
              if((int)fabs(c1)!=1){
                printf("%d",(int)fabs(c1));
              }
            printf("x");
            flag=true;
          }
          if(c0!=0 || !flag){
              if(flag){
                  if(c0<0){
                    printf(" - ");
                  }else{
                    printf(" + ");
                  }
              }else{
                  if(c0<0)
                    printf("-");
              }
              printf("%d",(int)fabs(c0));
          }
          printf("\n");
          flag=true;
          }
    return 0;
}

Wednesday, 24 October 2012

UVA - 10137 - The Trip

#include <stdio.h>

int main() {
    int n,i;
    double sum=0,avg=0;
      while(1){
            scanf("%d",&n);
            double arr[n];
            if(n==0)
                break;
            sum=0;
            avg=0;
            for(i=0;i<n;i++){
                scanf("%lf",&arr[i]);
                sum+=arr[i];
            }
            avg=sum/n;

            double sum1=0,sum2=0,dif=0;
            for(i=0;i<n;i++){
                dif=(double)(long)((arr[i] - avg) * 100) / 100.0;
                if(dif<0)
                    sum2-=dif;
                else
                    sum1+=dif;
            }
            if(sum2>sum1){
                printf("$%.2lf\n", sum2);
            }else{
                printf("$%.2lf\n", sum1);
            }
          }
    return 0;
}


UVA - 11774 - Doom's Day


#include <stdio.h>

int gcd(int x,int y){
    if(y==0)
        return x;
    return gcd(y,x%y);
}

int main() {
    int x, y,cases,i;
    long ans;
       scanf("%d",&cases);
       for(i=1;i<cases+1;i++){
            scanf("%d %d",&x,&y);
            if(x==y)
                ans=2;
            else{
                int temp=gcd(x,y);
                ans=x/temp+y/temp;
            }
            printf("Case %d: %ld\n",i,ans);
          }
    return 0;
}

UVA - 10427 - Naughty Sleepy Boys


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;

public class Main {

    public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        StringBuffer sb = new StringBuffer("");
        String m = "";
        int []digits=new int[9];
        for(int i=1,temp=9;i<9;i++,temp*=10){
            digits[i]=digits[i-1]+temp*i;
        }
        while ((m = br.readLine()) != null) {
            int x = Integer.parseInt(m);
            if(x==-1)
                break;
            int index=0;
            for(int i=1;i<9;i++){
                if(digits[i]>=x){
                    index=i-1;
                    break;
                }
            }
            int temp=x-digits[index]-1;
            int indAns=temp/(index+1);
            int rem=temp%(index+1);
            int start=(int) Math.pow(10, index);
            String solution=start+indAns+"";
            sb.append(solution.charAt(rem)).append("\n");
           
        }
        System.out.print(sb);
    }


}

Tuesday, 23 October 2012

UVA - 12499 - I am Dumb 3


#include <stdio.h>

int main() {
    int x, y, i, cases, j;
    int arr[51];
       scanf("%d",&cases);
       for(i=1;i<cases+1;i++){
            scanf("%d %d",&x,&y);
           
            for(j=0;j<x;j++){
                scanf("%d",&arr[j]);
            }
            arr[x]=y;
            int temp=0;
            for(j = 0; j < x; j+=2){
                temp^= arr[j+1]-arr[j];
            }
            printf("Case %d: ",i);
            if(temp!=0)
                printf("First Player\n");
            else
                printf("Second Player\n");
        }
    return 0;
}

UVA - 10190 - Divide, But Not Quite Conquer!


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;

public class Main {

    public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        StringBuffer sb = new StringBuffer("");
        String m = "";
        while ((m = br.readLine()) != null) {
            String[] str = m.split(" ");
            int x = Integer.parseInt(str[0]);
            int y = Integer.parseInt(str[1]);
            int[] list = getBoo(x, y);
            if (list.length == 0) {
                sb.append("Boring!\n");
            } else {
                for (int i = 0; i < list.length; i++) {
                    if (i > 0) {
                        sb.append(" ");
                    }
                    sb.append(list[i]);
                }
                sb.append("\n");
            }
        }
        System.out.print(sb);
    }

    static int[] getBoo(int x, int m) {
        if(x<=1 || m<=1)
            return new int[0];
        LinkedList<Integer> list = new LinkedList<Integer>();
        boolean flag = true;
        int temp = x;
        while (temp > 1) {
            list.add(temp);
            if (temp % m == 0) {
                temp /= m;
            } else {
                flag = false;
                break;
            }
        }
        if (flag) {
            list.add(1);
            int arr[] = new int[list.size()];
            for (int i = 0; i < list.size(); i++) {
                arr[i] = list.get(i);
            }
            return arr;
        } else {
            return new int[0];
        }
    }
}

UVA - 443 - Humble Numbers

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;

public class Main {
   
    public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        StringBuffer sb = new StringBuffer("");
        String m = "";
        ArrayList<Long> lolz = new ArrayList<Long>();
        int[] p = {2, 3, 5, 7};
        for (int i = 1; i < 11; i++) {
            lolz.add((long) i);
        }
        int index = 0;
        while (lolz.size() < 6843) {
            long temp = lolz.get(index);
            for (int i = 0; i < p.length; i++) {
                if (!lolz.contains(temp * p[i])) {
                    lolz.add(temp * p[i]);
                    long[] arr = new long[lolz.size()];
                    for (int j = 0; j < arr.length; j++) {
                        arr[j] = lolz.get(j);
                    }
                    Arrays.sort(arr);
                    lolz.clear();
                    for (int j = 0; j < arr.length; j++) {
                        lolz.add(arr[j]);
                    }
                }
               
            }
            index++;
        }
        long[] arr = new long[lolz.size()];
                    for (int j = 0; j < arr.length; j++) {
                        arr[j] = lolz.get(j);
                    }
        while (true) {
            int x = Integer.parseInt(br.readLine());
            if (x == 0) {
                break;
            }
            String st=getRank(x);
            sb.append("The ");
            sb.append(x).append(st);
            sb.append(" humble number is ");
            sb.append(arr[x-1]).append(".\n");
        }
        System.out.print(sb);
    }
   
    static String getRank(int x){
        int temp=x%100;
        int z=x%10;
        if(temp>9 && temp<20){
            return "th";
        }else{
            if(z==1)
              return "st";
            else if(z==2)
              return "nd";
            else if(z==3)
               return "rd";
            else
               return "th";              
        }
    }
}