Algorithm π§π»π»/λ°±μ€(BOJ)
[λ°±μ€,c++] 14698λ² - μ μνλλ μ¬λΌμ μ°κ΅¬μμλ 건μ λνμ¬(Hard)
dkswnkk
2021. 11. 11. 23:21
λ¬Έμ
14698λ²: μ μνλλ μ¬λΌμ μ°κ΅¬μμλ 건μ λνμ¬ (Hard)
κ° ν μ€νΈ μΌμ΄μ€λ§λ€ μ¬λΌμμ λκΉμ§ ν©μ±νμ λ μ²κ΅¬λ λΉμ©μ μ΅μκ°μ 1, 000, 000, 007λ‘ λλ λλ¨Έμ§λ₯Ό μΆλ ₯νλ€. μ κΈ° μλμ§κ° μ ν νμνμ§ μμ κ²½μ°μ 1 μ μΆλ ₯νλ€.
www.acmicpc.net
μ½λ
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
const long long int mod = 1000000007;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int T;;
cin >> T;
while(T--){
int n;
cin >> n;
priority_queue<long long int,vector<long long int >,greater<long long int >> pq;
for (int i = 0; i < n; i++) {
long long int num; cin >> num;
pq.push(num);
}
long long int score = 1;
while (pq.size() >=2) {
long long int one = pq.top(); pq.pop();
long long int two = pq.top(); pq.pop();
score *= (((one % mod) * (two % mod)) % mod);
pq.push(one * two);
score%=mod;
}
cout << score << "\n";
}
}