結果
| 問題 |
No.2709 1975 Powers
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-07-14 13:06:02 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,106 bytes |
| コンパイル時間 | 1,535 ms |
| コンパイル使用メモリ | 117,472 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2025-07-14 13:06:09 |
| 合計ジャッジ時間 | 5,620 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 1 TLE * 1 -- * 23 |
ソースコード
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
// pow(a, b, m): a^b mod m(Pythonのpow(a, b, m)と同じ動作)
long long modpow(long long a, long long b, long long m) {
long long res = 1;
a %= m;
while (b > 0) {
if (b & 1) res = res * a % m;
a = a * a % m;
b >>= 1;
}
return res;
}
int main() {
int N, P, Q;
cin >> N >> P >> Q;
vector<int> A(N);
for (int i = 0; i < N; ++i) cin >> A[i];
sort(A.begin(), A.end());
int ans = 0;
// 4つの組み合わせ全探索
for (int i = 0; i < N; ++i) {
for (int j = i+1; j < N; ++j) {
for (int k = j+1; k < N; ++k) {
for (int l = k+1; l < N; ++l) {
long long sum =
modpow(10, A[i], P) +
modpow(9, A[j], P) +
modpow(7, A[k], P) +
modpow(5, A[l], P);
if (sum % P == Q) ans++;
}
}
}
}
cout << ans << endl;
return 0;
}