No.1092 modular arithmetic
タグ : / 解いたユーザー数 106
作問者 : null / テスター : butsurizuki
問題文
素数 $P$ と、$N$ 個の非負整数 $A_i(1 \le i \le N)$ と、$N - 1$ 個の ```+```, ```-```, ```*```, ```/``` いずれかからなる文字列 $S$ が与えられます。
$S$ の $j(1 \le j \le N - 1)$ 文字目を $operator_j$ としたときに、以下の値を計算して出力してください。
$\mod P$ 上の $(( \dots ((A_1\ operator_1\ A_2)\ operator_2\ A_3)\ operator_3 \dots \ A_{N-1})\ operator_{N-1}\ A_N)$
言い換えると、演算子に関わらず計算順序は前からとして計算してください。
ただし、 $\mod P$ 上の割り算 p/q
は、 $p \equiv qr (\mod P)$ かつ $0 \le r < P$ である唯一の整数 $r$ が解であるものとします。
入力
$P\ N$ $A_1\ A_2\ \dots\ A_N$ $S$
$2 \le P \le 10^9$
$1 \le N \le 10^5$
$P$ は素数
$1 \le A_i < P$
$|S| = N - 1$
$S$ は +
, -
, *
, /
のみからなる
出力
一行に答えを出力せよ。最後に改行せよ。
サンプル
サンプル1
入力
11 10 1 5 5 2 3 4 6 5 2 8 ++*--//*-
出力
4
$\mod 11$ 上での
$((((1+5+5) \times 2-3-4)/6)/5) \times 2-8$
を求めてください。可読性向上のため無くても意味が変わらないカッコは省いています。
出典
YSF Beginner Contest: E - modular arithmetic
writer: null
tester: butsuri_0523
HackerRank の規約に基づいて移植されました。一部サイトの都合などで改変したところがあります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。