Page 9 of 9

Re: 10515 - Power et al.

Posted: Mon Feb 25, 2013 9:27 am
by garbage
Why TLE ???

Code: Select all

import java.util.Scanner;
import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        int power=0;
        BigInteger first,second,remainder,lastDigitOfFirst,result;

        BigInteger zero = BigInteger.ZERO;
        BigInteger one = BigInteger.ONE;
        BigInteger two = BigInteger.valueOf(2);
        BigInteger three = BigInteger.valueOf(3);
        BigInteger four = BigInteger.valueOf(4);
        BigInteger ten = BigInteger.TEN;
        
        Scanner in=new Scanner(System.in);

        while(in.hasNextBigInteger())
        {
            first=in.nextBigInteger();
            second=in.nextBigInteger();

            if(first.compareTo(zero) == 0 && second.compareTo(zero) == 0)
                break;

            if(first.compareTo(zero)!=0 && second.compareTo(zero) == 0)
                System.out.println("1");

            else
            {
                lastDigitOfFirst=first.remainder(ten);
                remainder=second.remainder(four);

                if(remainder.compareTo(one) == 0)
                    power = 1;

                if(remainder.compareTo(two) == 0)
                    power = 2;

                if(remainder.compareTo(three) == 0)
                    power = 3;

                if(remainder.compareTo(zero) == 0)
                    power = 4;

                result=lastDigitOfFirst.pow(power);

                System.out.println(result.remainder(ten));
            }
        }
    }

}

Re: 10515 - Power et al.

Posted: Mon Feb 25, 2013 9:28 am
by garbage
Why TLE ???

Code: Select all

import java.util.Scanner;
import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        int power=0;
        BigInteger first,second,remainder,lastDigitOfFirst,result;

        BigInteger zero = BigInteger.ZERO;
        BigInteger one = BigInteger.ONE;
        BigInteger two = BigInteger.valueOf(2);
        BigInteger three = BigInteger.valueOf(3);
        BigInteger four = BigInteger.valueOf(4);
        BigInteger ten = BigInteger.TEN;
        
        Scanner in=new Scanner(System.in);

        while(in.hasNextBigInteger())
        {
            first=in.nextBigInteger();
            second=in.nextBigInteger();

            if(first.compareTo(zero) == 0 && second.compareTo(zero) == 0)
                break;

            if(first.compareTo(zero)!=0 && second.compareTo(zero) == 0)
                System.out.println("1");

            else
            {
                lastDigitOfFirst=first.remainder(ten);
                remainder=second.remainder(four);

                if(remainder.compareTo(one) == 0)
                    power = 1;

                if(remainder.compareTo(two) == 0)
                    power = 2;

                if(remainder.compareTo(three) == 0)
                    power = 3;

                if(remainder.compareTo(zero) == 0)
                    power = 4;

                result=lastDigitOfFirst.pow(power);

                System.out.println(result.remainder(ten));
            }
        }
    }

}

Re: 10515 - Power et al.

Posted: Mon Feb 25, 2013 10:50 pm
by brianfry713
Try using BufferedReader and BufferedWriter. You can solve this without using BigInteger.
http://www.algorithmist.com/index.php/UVa_10515

Re: 10515 - Powers Et Al.

Posted: Wed Feb 25, 2015 6:47 am
by uradura

Re: 10515 - Powers Et Al.

Posted: Wed Feb 25, 2015 11:23 pm
by brianfry713
Read this thread, try solving it without using BigInteger.