結果
問題 |
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; }