結果
| 問題 |
No.1237 EXP Multiple!
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-09-28 15:49:56 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 28 ms / 2,000 ms |
| コード長 | 715 bytes |
| コンパイル時間 | 976 ms |
| コンパイル使用メモリ | 111,068 KB |
| 実行使用メモリ | 11,948 KB |
| 最終ジャッジ日時 | 2024-06-22 09:11:36 |
| 合計ジャッジ時間 | 2,046 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 19 |
ソースコード
import std.stdio;
import std.string;
import std.algorithm;
import std.array;
import std.conv;
import std.range;
import std.math;
const int D = 1000000007;
void main() {
readln; // discard N
int[] a = readln.strip.split(" ").map!(to!int).array;
int[] r = a.reduce!(min, max).array;
immutable int amin = r[0];
immutable int amax = r[1];
if (amin <= 0) {
writeln("-1");
return;
}
if (4 <= amax) {
writeln(D);
return;
}
int m = 1;
foreach (ai; a) {
int factor = ai.iota.map!("a+1").reduce!("a*b");
m *= pow(ai, factor);
if (D <= m) {
writeln(D);
return;
}
}
writeln(D % m);
}