結果
問題 | No.16 累乗の加算 |
ユーザー |
|
提出日時 | 2024-01-09 09:10:29 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 2,424 bytes |
コンパイル時間 | 2,161 ms |
コンパイル使用メモリ | 194,820 KB |
最終ジャッジ日時 | 2025-02-18 16:40:14 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 |
ソースコード
#include <bits/stdc++.h>using namespace std;template <typename T> using min_priority_queue = priority_queue<T,vector<T>,greater<T>>;template<typename T>void printv(vector<T> &v){bool b = false;for(auto i : v){if(b) cout << " ";else b = true;cout << i;}cout << endl;}int64_t rand64(){int64_t l = rand();int64_t r = rand();return (l<<31)+r;}template <typename T>bool chmin(T &a, const T& b) {if (a > b) {a = b; // aをbで更新return true;}return false;}template <typename T>bool chmax(T &a, const T& b) {if (a < b) {a = b; // aをbで更新return true;}return false;}int64_t pow_mod(int64_t a, int64_t b, int64_t n){a %= n;if(a == 0) return 0;if(a == 1 || b == 0) return 1;if(b == 1) return a;int64_t c = b/2;int64_t d = b%2;int64_t ac = pow_mod(a,c,n);int64_t ad = pow_mod(a,d,n);return ac*ac%n*ad%n;}bool yn(bool b){if(b) cout << "Yes" << endl;else cout << "No" << endl;return b;}bool debug;bool randomInput;bool debugOutput;int numOfTestCase;using ans_type = int;void input(){if(numOfTestCase > 1){}if(randomInput){}else{}return;}void output_input(){;}ans_type calc(){int x, N;cin >> x >> N;vector<int> A(N);for(auto &i : A) cin >> i;int64_t ans = 0;for(auto a : A){ans += pow_mod(x, a, 1000003);}ans %= 1000003;cout << ans << endl;return ans_type();}ans_type calc_simple(){return ans_type();}void output(ans_type ans){return;}int main(){debug = 0;randomInput = 0;debugOutput = 0;numOfTestCase = 1;srand(time(NULL));cout << fixed << setprecision(12);if(numOfTestCase == 0) cin >> numOfTestCase;if(debug){for(int i = 0; i < numOfTestCase; i++){if(debugOutput) cout << string(16, '-') << endl;input();ans_type ans = calc();ans_type ansSimple = calc_simple();if(ans != ansSimple){output_input();output(ans);output(ansSimple);}}}else{for(int i = 0; i < numOfTestCase; i++){input();output(calc());}}return 0;}