Pages

Friday 28 June 2013

UVA - 11364 - Parking

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int cases,n,val;
    scanf("%d",&cases);
    while(cases--){
        scanf("%d",&n);
        int max=0,min=100;
        while(n--){
            scanf("%d",&val);
            if(val>max)
                max=val;
            if(val<min)
                min=val;
        }
        printf("%d\n",2*(max-min));
    }
    return 0;
}

UVA - 12279 - Emoogle Balance

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,val,i=1;
    while(1){
        scanf("%d",&n);
        if(n==0){
            break;
        }
        int treat=0,party=0;
        while(n--){
            scanf("%d",&val);
            if(val==0){
                treat++;
            }else{
                party++;
            }
        }
        printf("Case %d: %d\n",i,(party-treat));
        i++;
    }
    return 0;
}

UVA - 10992 - The Ghost of Programmers

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb = new StringBuffer();
        boolean first=true;
        while(true){
            BigInteger bg=new BigInteger(br.readLine());
            if(bg.compareTo(BigInteger.ZERO)==0){
                break;
            }
            if(!first){
                sb.append("\n");
            }
            sb.append(bg).append("\n");
            answer(bg, sb);
            first=false;
        }
        System.out.print(sb);
    }
   
    static void answer(BigInteger bg,StringBuffer sb){
        boolean flag=false;
        if(bg.compareTo(BigInteger.valueOf(2147))==1){
            BigInteger leap=bg.add(BigInteger.ZERO);
            bg=bg.subtract(BigInteger.valueOf(2148));
            if((bg.mod(BigInteger.valueOf(2))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Tanveer Ahsan!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(5))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Shahriar Manzoor!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(7))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Adrian Kugel!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(11))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Anton Maydell!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(15))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Derek Kisman!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(20))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Rezaul Alam Chowdhury!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(28))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Jimmy Mardell!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(36))).compareTo(BigInteger.ZERO)==0){
                sb.append("Ghost of Monirul Hasan!!!\n");
                flag=true;
            }
            if((bg.mod(BigInteger.valueOf(4))).compareTo(BigInteger.ZERO)==0){
                if((leap.mod(BigInteger.valueOf(400))).compareTo(BigInteger.ZERO)==0){
                    sb.append("Ghost of K. M. Iftekhar!!!\n");
                    flag=true;
                }
                if(!((leap.mod(BigInteger.valueOf(100))).compareTo(BigInteger.ZERO)==0)){
                    sb.append("Ghost of K. M. Iftekhar!!!\n");
                    flag=true;
                }
            }
        }
        if(!flag){
            sb.append("No ghost will come in this year\n");
        }
    }
}

Thursday 27 June 2013

UVA - 12060 - All Integer Average

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int cases=1;
        while (true) {
            StringTokenizer st=new StringTokenizer(br.readLine());
            int sum=0;
            int n=Integer.parseInt(st.nextToken());
            if(n==0){
                break;
            }
            sb.append("Case ").append(cases).append(":\n");
            cases++;
            while(st.hasMoreTokens()){
                sum+=Integer.parseInt(st.nextToken());
            }
            if(sum<0){
                if(sum%n==0){
                    sb.append("- ").append(Math.abs(sum/n)).append("\n");
                }else{
                    int val=(Math.abs(sum/n));
                    String qu="";
                    if(val!=0)
                        qu+=val;
                    int num=sum%n;
                    int gcd=gcd(num,n);
                    String numS=(Math.abs(num/gcd))+"";
                    String denS=Math.abs(n/gcd)+"";
                    for(int i=0;i<qu.length()+denS.length()-numS.length()+2;i++){
                        sb.append(" ");
                    }
                    sb.append(numS).append("\n");
                   
                    sb.append("- ");
                    sb.append(qu);
                    for(int i=0;i<denS.length();i++){
                        sb.append("-");
                    }
                    sb.append("\n");
                   
                    for(int i=0;i<qu.length()+2;i++){
                        sb.append(" ");
                    }
                    sb.append(denS).append("\n");
                }
            }else{
                if(sum%n==0){
                    sb.append(sum/n).append("\n");
                }else{
                    int val=(Math.abs(sum/n));
                    String qu="";
                    if(val!=0)
                        qu+=val;
                    int num=sum%n;
                    int gcd=gcd(num,n);
                    String numS=(Math.abs(num/gcd))+"";
                    String denS=(n/gcd)+"";
                    for(int i=0;i<qu.length()+denS.length()-numS.length();i++){
                        sb.append(" ");
                    }
                    sb.append(numS).append("\n");
                   
                    sb.append(qu);
                    for(int i=0;i<denS.length();i++){
                        sb.append("-");
                    }
                    sb.append("\n");
                   
                    for(int i=0;i<qu.length();i++){
                        sb.append(" ");
                    }
                    sb.append(denS).append("\n");
                }
            }
        }
        System.out.print(sb);
    }

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

UVA - 594 - One Little, Two Little, Three Little Endians

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String m = "";
        while ((m = br.readLine()) != null) {
            StringBuilder temp=null ;
            if(m.charAt(0)=='-'){
                String str=m.substring(1);
                str= Long.toBinaryString(Long.parseLong(str));
                temp = new StringBuilder(twoSComplement(str));
            }else{
                temp = new StringBuilder(Long.toString(Integer.parseInt(m), 2));
            }
            sb.append(m).append(" converts to ").append(operation(temp)).append("\n");
        }
        System.out.print(sb);
    }

    static String operation(StringBuilder temp) {
        while (temp.length() < 32) {
            temp.insert(0, "0");
        }
        StringBuilder ans = new StringBuilder();
        for (int i = 0; i < 8; i++) {
            ans.append(temp.charAt(i + 24));
        }
        for (int i = 0; i < 8; i++) {
            ans.append(temp.charAt(i + 16));
        }
        for (int i = 0; i < 8; i++) {
            ans.append(temp.charAt(i + 8));
        }
        for (int i = 0; i < 8; i++) {
            ans.append(temp.charAt(i));
        }
        return StringMan(ans);
    }

    static String StringMan(StringBuilder temp) {
        if (temp.charAt(0) == '1') {
            StringBuilder oneComplement = new StringBuilder();
            for (int i = 0; i < temp.length(); i++) {
                if (temp.charAt(i) == '0') {
                    oneComplement.append('1');
                } else {
                    oneComplement.append('0');
                } 
            }
            long h=Long.parseLong(oneComplement.toString(),2)+1;
            return "-"+h;
        }
        return Integer.parseInt(temp.toString(), 2) + "";
    }
   
    static String twoSComplement(String temp){
            StringBuilder oneComplement = new StringBuilder();
            while(temp.length()<32){
                temp='0'+temp;
            }
            for (int i = 0; i < temp.length(); i++) {
                if (temp.charAt(i) == '0') {
                    oneComplement.append('1');
                } else {
                    oneComplement.append('0');
                } 
            }
            long h=Long.parseLong(oneComplement.toString(),2)+1;
            return Long.toBinaryString(h);
    }
}

Monday 24 June 2013

UVA - 10433 - Automorphic Numbers

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;

public class Main{

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();  
        String m="";
        while((m=br.readLine())!=null){
            int val=checkBg(m);
            if(val==0){
                sb.append("Not an Automorphic number.\n");
            }else{
                sb.append(String.format("Automorphic number of %d-digit.\n", val));
            }
        }
        System.out.print(sb);
    }
   
    static int checkBg(String m){
       
        BigInteger bg=new BigInteger(m);
        int n=m.length();
        String str=bg.modPow(BigInteger.valueOf(2), BigInteger.TEN.pow(n)).toString();
        if(str.equals("0") ||str.equals("1"))
            return 0;
        while(str.length()!=n){
           str="0"+str;
        }
        for(int i=0;i<n;i++){
            if(str.charAt(i)!=m.charAt(i))
                return 0;
        }
        return n;
    }
}
  

Thursday 13 June 2013

UVA - 11952 - Arithmetic

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuffer sb = new StringBuffer();
        int cases =Integer.parseInt(br.readLine());
        for(int i=0;i<cases;i++){
            StringTokenizer st=new StringTokenizer(br.readLine());
            int x=Integer.parseInt(st.nextToken());
            st.nextToken();
            int y=Integer.parseInt(st.nextToken());
            st.nextToken();
            int z=Integer.parseInt(st.nextToken());
            sb.append(getbase(x,y,z)).append("\n");
            String m="";
        }
         
        System.out.print(sb);
    }
  
    static int getbase(int x,int y,int z){
        if(checkones(x+"") && checkones(y+"") && checkones(z+"")){
            if((x+"").length()+(y+"").length()==(z+"").length())
                return 1;
        }
        for(int i=Math.max(Math.max(minbase(x+""),minbase(y+"")),minbase(z+""));i<19;i++){
            int x2=Integer.parseInt(x+"",i);
            int y2=Integer.parseInt(y+"",i);
            int z2=Integer.parseInt(z+"",i);
            if(x2+y2==z2){
                return i;
            }
        }
        return 0;
    }
  
    static boolean checkones(String val){
        for(int i=0;i<val.length();i++){
            if(val.charAt(i)!='1')
                return false;
        }
        return true;
    }
    static int minbase(String val){
       int max=1;
       for(int i=0;i<val.length();i++){
           int temp=val.charAt(i)-'0';
           if(temp>max)
               max=temp;
       }
       return max+1;
    }
}