Pages

Wednesday, 12 December 2012

UVA - 10070 - Leap Year or Not Leap Year

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));
        StringBuffer sb = new StringBuffer("");
        String m="";
        boolean first=true;
        while((m=br.readLine())!=null){
            if(!first){
                sb.append("\n");
            }
            boolean leap=false,bul=false,hul=false;
            BigInteger x = new BigInteger(m);
            if(x.mod(BigInteger.valueOf(4)).compareTo(BigInteger.ZERO)==0){
                if(x.mod(BigInteger.valueOf(100)).compareTo(BigInteger.ZERO)==0){
                    if(x.mod(BigInteger.valueOf(400)).compareTo(BigInteger.ZERO)==0){
                        leap=true;
                    }
                }else{
                    leap=true;
                }
            }
            if(x.mod(BigInteger.valueOf(15)).compareTo(BigInteger.ZERO)==0){
                hul=true;
            }
            if(x.mod(BigInteger.valueOf(55)).compareTo(BigInteger.ZERO)==0){
                bul=true;
            }
            if(hul||leap){
                if(leap){
                    sb.append("This is leap year.\n");
                }
                if(hul){
                    sb.append("This is huluculu festival year.\n");
                }
                if(leap&&bul){
                    sb.append("This is bulukulu festival year.\n");
                }
            }else{
                sb.append("This is an ordinary year.\n");
            }
            first=false;
        }
        System.out.print(sb);
    }
}


UVA - 993 - Product of digits

import java.io.InputStreamReader;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner br = new Scanner(new InputStreamReader(System.in));
        StringBuffer sb = new StringBuffer("");
        int cases = br.nextInt();
        for (int i = 0; i < cases; i++) {
            int x = br.nextInt();
            if (x == 0) {
                sb.append("10\n");
                continue;
            }
            int temp = x;
            boolean ok = true;
            StringBuilder str = new StringBuilder("");
            while (temp > 9) {
                int last = temp;
                for (int j = 9; j > 1; j--) {
                    if (temp % j == 0) {
                        str.append(j);
                        temp /= j;
                        break;
                    }
                }
                if (temp == last) {
                    ok = false;
                    break;
                }
            }
            if (ok) {
                sb.append(temp).append(str.reverse()).append("\n");
            } else {
                sb.append("-1\n");
            }
        }
        System.out.print(sb);
    }
}

Tuesday, 11 December 2012

UVA - 10162 - Last Digit

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));
        StringBuffer sb = new StringBuffer("");
        int []arr=new int[100];
        BigInteger bg=new BigInteger("0");
        for(int i=1;i<100;i++){
            bg=bg.add(BigInteger.valueOf(i).modPow(BigInteger.valueOf(i), BigInteger.valueOf(10)));
            arr[i]=bg.mod(BigInteger.valueOf(10)).intValue();
        }
        while (true) {
            String temp=br.readLine();
            BigInteger num=new BigInteger(temp);
            if(temp.equals("0")){
                break;
            }
            int r=num.mod(BigInteger.valueOf(100)).intValue();
            sb.append(arr[r]).append("\n");
        }
        System.out.print(sb);
    }
}

UVA - 12516 - Cinema-cola

//Don't use StringBuilder and StringTokenizer to get it in time
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("");
        boolean arr[][] = new boolean[27][100];
        boolean seats[][]= new boolean[27][100];
        while (true) {
            StringTokenizer str = new StringTokenizer(br.readLine());
            int rows = Integer.parseInt(str.nextToken());
            int cols = Integer.parseInt(str.nextToken());
            if (rows == 0 && cols == 0) {
                break;
            }
            for(int i=0;i<27;i++){
                for(int j=0;j<100;j++){
                    arr[i][j]=seats[i][j]=false;
                }
            }
            int alreadyIn = Integer.parseInt(br.readLine());
            for (int j = 0; j < alreadyIn; j++) {
                str = new StringTokenizer(br.readLine());
                StringBuilder temp=new StringBuilder(str.nextToken());
                int rowIn = temp.charAt(0) - 65;
                int colIn = Integer.parseInt(temp.substring(1));
                temp=new StringBuilder(str.nextToken());
                if (temp.charAt(0)=='-') {
                    arr[rowIn][colIn-1] = true;
                } else {
                    arr[rowIn][colIn] = true;
                }
            }
            int myGroup = Integer.parseInt(br.readLine());
            for(int j=0;j<myGroup;j++){
                str = new StringTokenizer(br.readLine());
                StringBuilder temp=new StringBuilder(str.nextToken());
                int rowIn = temp.charAt(0) - 65;
                int colIn = Integer.parseInt(temp.substring(1));
                seats[rowIn][colIn]=true;
            }
            boolean canWe = true;
            for (int j = 0; j < rows; j++) {
                for(int z=1;z<cols+1;z++){
                if (seats[j][z]) {
                    if (!arr[j][z-1]) {
                        arr[j][z-1] = true;
                    } else if (!arr[j][z]) {
                        arr[j][z] = true;
                    } else {
                        canWe = false;
                        break;
                    }
                }
                if(!canWe)
                    break;
                }
            }
            if(canWe){
                sb.append("YES").append("\n");
            }else{
                sb.append("NO").append("\n");
            }
        }
        System.out.print(sb);
    }
}

Monday, 10 December 2012

UVA - 10293 - Word Length and Frequency

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));
        char m=' ';
        StringBuilder temp=new StringBuilder("");
        StringBuffer sb=new StringBuffer("");
        boolean first=true,flag=true;
        char last=' ';
        while(flag){
            if(!first){
                sb.append("\n");
            }
            first=false;
            int []arr=new int[31];
            while(true){
                m=(char) br.read();
                int lol =m;
                if(lol==65535){
                    flag=false;
                    break;
                }
               if((m>='a' &&m<='z')||(m>='A' &&m<='Z')){
                   temp.append(m);
                   last=m;
               }
               else if(m=='-'||m=='\''){
                   last=m;
                   continue;
               }else if(m=='#'){
                   for(int i=1;i<arr.length;i++){
                       if(arr[i]>0){
                           sb.append(i).append(" ").append(arr[i]).append("\n");
                       }
                   }
                   break;
               }
               else{
                   if(last!='-'){
                      arr[temp.length()]++;
                      temp=new StringBuilder("");
                   }
                   else{
                       last=' ';
                   }
               }
            }
        }
        System.out.print(sb);
    }
}

UVA - 12543 - Longest Word

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));
        char m=' ';
        StringBuilder temp=new StringBuilder("");
        String max="";
        while(true){
           m=(char) br.read();
           if((m>='a' &&m<='z')||(m>='A' &&m<='Z')){
               temp.append(m);
           }
           else if(m=='-'){
               temp.append(m);
           }else{
              if(max.length()<temp.length()) {
                  max=temp.toString();
              }
              temp=new StringBuilder("");
           }
           if(temp.toString().equals("E-N-D")){
               break;
           }
        }
        System.out.println(max.toLowerCase());
    }
}

Sunday, 9 December 2012

UVA - 12416 - Excessive Space Remover

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));
        StringBuffer sb=new StringBuffer();
        String m="";
        while((m=br.readLine())!=null){
           int count=0,tempC=0;
           for(int i=0;i<m.length();i++){
               if(m.charAt(i)==' '){
                   tempC++;
               }else{
                   if(tempC>count){
                       count=tempC;
                   }
                   tempC=0;
               }
           }
           sb.append((int)Math.ceil(Math.log(count)/Math.log(2))).append("\n");
        }
        System.out.print(sb);
    }
}