結果
問題 |
No.2062 Sum of Subset mod 999630629
|
ユーザー |
|
提出日時 | 2022-08-26 22:54:51 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,195 bytes |
コンパイル時間 | 1,588 ms |
コンパイル使用メモリ | 166,728 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-13 23:31:50 |
合計ジャッジ時間 | 3,398 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 5 WA * 24 |
ソースコード
// #include <cmath> // #include <cstdio> // #include <vector> // #include <iostream> // #include <queue> // #include <map> // #include <unordered_map> // #include <algorithm> #include <bits/stdc++.h> #define MAX_SIZE 100005 #define ull unsigned long long #define MOD1 999630629 #define MOD2 998244353 using namespace std; int N, C; int A[MAX_SIZE]; ull modpow(ull base, ull exp, ull modulus) { base %= modulus; ull result = 1; while (exp > 0) { if (exp & 1) result = (result * base) % modulus; base = (base * base) % modulus; exp >>= 1; } return result; } ull pow1(ull x,ull a){ if(a == 0) return 1; ull y = pow1(x,a/2)%MOD1; y = (y*y)%MOD1; if(a%2){ return (y*x)%MOD1; } return y%MOD1; } void solve(){ // ull mult = pow(2,N-1); ull mult = modpow(2,N-1,MOD1); ull ans = 0; for(int i =0;i<N;i++){ ans = (ans + A[i]%MOD1)%MOD1; // cout << A[i] << "," << ans << " "; } // cout << endl; cout << (mult*ans)%MOD2 << endl; } int main() { cin >> N; for(int i = 0;i<N;i++){ cin >> A[i]; } solve(); // cout << pow1(2,100000) << endl; return 0; }