Thursday, August 13, 2015

UVa 10515 - Powers Et Al.

// UVa 10515 - Powers Et Al.
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.String;

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

		String[] ab = bufferedReader.readLine().split(" ");
		String a = ab[0], b = ab[1];

		while (a.charAt(0) != '0' || b.charAt(0) != '0') {
			int a_dig = a.charAt(a.length() - 1) - '0';
			// get cycle
			List<Integer> cycle = new ArrayList<Integer>();
			boolean[] already = new boolean[10];
			for (int i = 0; i < 10; i++)
				already[i] = false;
			int a_gen = a_dig;
			for (int i = 0; i < 10; i++) {
				cycle.add(a_gen);
				already[a_gen] = true;
				a_gen = (a_gen * a_dig) % 10;
				if (already[a_gen])
					break;
			}
			// power
			int b_dig = (new BigInteger(b)).mod(BigInteger.valueOf(cycle.size())).intValue();
			int sol = cycle.get((b_dig - 1 + cycle.size()) % cycle.size());
			System.out.println(sol);
			// next
			ab = bufferedReader.readLine().split(" ");
			a = ab[0];
			b = ab[1];
		}

	}

}

No comments:

Post a Comment