結果
問題 | No.16 累乗の加算 |
ユーザー |
|
提出日時 | 2017-09-05 15:11:10 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,075 bytes |
コンパイル時間 | 726 ms |
コンパイル使用メモリ | 90,004 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-26 05:24:01 |
合計ジャッジ時間 | 1,258 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 |
ソースコード
#include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <functional> #include <iostream> #include <iterator> #include <limits> #include <list> #include <map> #include <numeric> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <utility> #include <valarray> #include <vector> #define N 1000 // #define MOD 1000000007 #define MOD 1000003 #define pe(str) return cout<<(str)<<endl,0 #define px(str) {cout<<(str)<<endl;exit(0);} #define re(i,n) for(int i=0;i<(n);i++) #define rep(i,a,b) for(int i=(a);i<(b);i++) #define fe(i,n,f) for_each(i,n,f) #define bw(a,b,c) (((a)<=(b))&&((b)<=(c))) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<int,int> pii; ll p(ll x,ll y){ ll A=x; if(y==0) return 1; if(y==1) return x; A=p(x,y/2); return (y&1?((A*A)%MOD*x)%MOD: (A*A)%MOD); // return (y&1?((A*A)*x):(A*A)); } int main(void){ ll x,n; cin>>x>>n; ll a; ll s=0; re(i,n){ cin>>a; s+=p(x,a); s%=MOD; } cout<<s<<endl; return 0; }