結果
問題 | No.16 累乗の加算 |
ユーザー |
![]() |
提出日時 | 2015-02-04 05:33:43 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 59 ms / 5,000 ms |
コード長 | 2,798 bytes |
コンパイル時間 | 2,360 ms |
コンパイル使用メモリ | 78,424 KB |
実行使用メモリ | 50,352 KB |
最終ジャッジ日時 | 2024-06-26 04:48:35 |
合計ジャッジ時間 | 3,849 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 |
ソースコード
import java.io.IOException;import java.util.InputMismatchException;public class Main {int MOD = 1_000_003;long power(int n, int k) {char[] bit = Integer.toBinaryString(k).toCharArray();long res = 1;long tmp = n;for (int i = bit.length - 1; 0 <= i; i--) {if (bit[i] == '1') {res *= tmp;res %= MOD;}tmp *= tmp;tmp %= MOD;}return res;}void run() {MyScanner sc = new MyScanner();power(100, 100);// for (int i = 0; i < 10; i++) {// System.out.println("pow(2, " + i + ") is " + power(2, i));// }//// for (int variableForLoop = 0; variableForLoop < 1;)// ;int x = sc.nextInt();int n = sc.nextInt();int[] a = sc.nextIntArray(n);long sum = 0;for (int i = 0; i < n; i++) {sum += power(x, a[i]);sum %= MOD;}System.out.println(sum);}public static void main(String[] args) {new Main().run();}public void mapDebug(int[][] a) {System.out.println("--------map display---------");for (int i = 0; i < a.length; i++) {for (int j = 0; j < a[i].length; j++) {System.out.printf("%3d ", a[i][j]);}System.out.println();}System.out.println("----------------------------" + '\n');}class MyScanner {int read() {try {return System.in.read();} catch (IOException e) {throw new InputMismatchException();}}boolean isSpaceChar(int c) {return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;}boolean isEndline(int c) {return c == '\n' || c == '\r' || c == -1;}int nextInt() {return Integer.parseInt(next());}int[] nextIntArray(int n) {int[] array = new int[n];for (int i = 0; i < n; i++)array[i] = nextInt();return array;}long nextLong() {return Long.parseLong(next());}long[] nextLongArray(int n) {long[] array = new long[n];for (int i = 0; i < n; i++)array[i] = nextLong();return array;}double nextDouble() {return Double.parseDouble(next());}double[] nextDoubleArray(int n) {double[] array = new double[n];for (int i = 0; i < n; i++)array[i] = nextDouble();return array;}String next() {int c = read();while (isSpaceChar(c))c = read();StringBuilder res = new StringBuilder();do {res.appendCodePoint(c);c = read();} while (!isSpaceChar(c));return res.toString();}String[] nextStringArray(int n) {String[] array = new String[n];for (int i = 0; i < n; i++)array[i] = next();return array;}String nextLine() {int c = read();while (isEndline(c))c = read();StringBuilder res = new StringBuilder();do {res.appendCodePoint(c);c = read();} while (!isEndline(c));return res.toString();}}}