結果

問題 No.2394 部分和乗総和
コンテスト
ユーザー 👑 tails
提出日時 2023-07-31 15:42:23
言語 C90
(gcc 15.2.0)
コンパイル:
gcc-15 -O2 -std=c90 -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
AC  
実行時間 105 ms / 2,000 ms
コード長 665 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 175 ms
コンパイル使用メモリ 39,188 KB
最終ジャッジ日時 2026-02-24 01:15:37
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")

#define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);})
#define rd_skip() while(*rp++>=48)
#define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})
#define wt(v) ({ulong _z=v;do*--wp=_z%10+48;while(_z/=10);})
#define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);})

typedef unsigned long ulong;

int main(){
	rd_init();
	rd_skip();
	ulong m=rd();
	ulong b=rd();
	m%=b;
	ulong z=1;
	while(*rp){
		ulong a=rd();
		ulong c=m;
		ulong r=1;
		while(a){
			if(a&1){
				r=r*c%b;
			}
			a>>=1;
			c=c*c%b;
		}
		z=z*(r+1)%b;
	}
	wt1(z);
	_exit(0);
}
0