結果
問題 |
No.1237 EXP Multiple!
|
ユーザー |
![]() |
提出日時 | 2020-09-25 23:35:10 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 98 ms / 2,000 ms |
コード長 | 740 bytes |
コンパイル時間 | 1,687 ms |
コンパイル使用メモリ | 199,744 KB |
最終ジャッジ日時 | 2025-01-14 21:42:02 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef long long ll; typedef long double ld; typedef pair<int,int> P; constexpr ll mod = 1e9+7; int main() { int n; cin >> n; vector<ll> a(n); rep(i,n) cin >> a[i]; sort(a.begin(), a.end()); if (a.front() == 0LL) { cout << -1 << endl; return 0; } if (a.back() >= 4LL) { cout << mod << endl; return 0; } ll res = 1; for (int i = 0; i < n; i++) { int fact = 1; for (int j = 0; j < a[i]; j++) fact *= (j + 1); for (int j = 0; j < fact; j++) res *= a[i]; if (res > mod) { cout << mod << endl; return 0; } } cout << mod % res << endl; return 0; }