結果
問題 | No.1092 modular arithmetic |
ユーザー | Theta |
提出日時 | 2022-10-20 11:38:06 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
AC
|
実行時間 | 446 ms / 2,000 ms |
コード長 | 2,229 bytes |
コンパイル時間 | 80 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 29,736 KB |
最終ジャッジ日時 | 2024-06-30 05:30:53 |
合計ジャッジ時間 | 8,337 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 26 ms
10,880 KB |
testcase_01 | AC | 182 ms
29,736 KB |
testcase_02 | AC | 26 ms
11,008 KB |
testcase_03 | AC | 253 ms
28,316 KB |
testcase_04 | AC | 205 ms
25,224 KB |
testcase_05 | AC | 210 ms
25,136 KB |
testcase_06 | AC | 157 ms
21,012 KB |
testcase_07 | AC | 195 ms
25,120 KB |
testcase_08 | AC | 217 ms
26,880 KB |
testcase_09 | AC | 197 ms
24,640 KB |
testcase_10 | AC | 174 ms
22,600 KB |
testcase_11 | AC | 189 ms
23,828 KB |
testcase_12 | AC | 157 ms
20,968 KB |
testcase_13 | AC | 116 ms
17,920 KB |
testcase_14 | AC | 132 ms
19,072 KB |
testcase_15 | AC | 47 ms
12,288 KB |
testcase_16 | AC | 103 ms
16,896 KB |
testcase_17 | AC | 137 ms
19,164 KB |
testcase_18 | AC | 254 ms
27,688 KB |
testcase_19 | AC | 158 ms
20,992 KB |
testcase_20 | AC | 271 ms
28,424 KB |
testcase_21 | AC | 201 ms
24,400 KB |
testcase_22 | AC | 246 ms
27,084 KB |
testcase_23 | AC | 392 ms
23,872 KB |
testcase_24 | AC | 131 ms
14,680 KB |
testcase_25 | AC | 297 ms
20,796 KB |
testcase_26 | AC | 358 ms
24,032 KB |
testcase_27 | AC | 77 ms
12,800 KB |
testcase_28 | AC | 294 ms
21,100 KB |
testcase_29 | AC | 446 ms
26,624 KB |
testcase_30 | AC | 301 ms
21,172 KB |
testcase_31 | AC | 60 ms
12,032 KB |
testcase_32 | AC | 275 ms
20,104 KB |
ソースコード
def main(): P, N = map(int, input().split()) class Modint: MOD = P def __init__(self, value: int) -> None: self.num = int(value) % self.MOD def __str__(self) -> str: return str(self.num) __repr__ = __str__ def __add__(self, __x): if isinstance(__x, Modint): return Modint((self.num + __x.num)) return Modint(self.num + __x) def __sub__(self, __x): if isinstance(__x, Modint): return Modint(self.num - __x.num) return Modint(self.num - __x) def __mul__(self, __x): if isinstance(__x, Modint): return Modint(self.num * __x.num) return Modint(self.num * __x) __radd__ = __add__ __rmul__ = __mul__ def __rsub__(self, __x): if isinstance(__x, Modint): return Modint(__x.num - self.num) return Modint(__x - self.num) def __pow__(self, __x): if isinstance(__x, Modint): return Modint(pow(self.num, __x.num, self.MOD)) return Modint(pow(self.num, __x, self.MOD)) def __rpow__(self, __x): if isinstance(__x, Modint): return Modint(pow(__x.num, self.num, self.MOD)) return Modint(pow(__x, self.num, self.MOD)) def __truediv__(self, __x): if isinstance(__x, Modint): return Modint(self.num * pow(__x.num, self.MOD - 2, self.MOD)) return Modint(self.num * pow(__x, self.MOD - 2, self.MOD)) def __rtruediv__(self, __x): if isinstance(__x, Modint): return Modint(__x.num * pow(self.num, self.MOD - 2, self.MOD)) return Modint(__x * pow(self.num, self.MOD - 2, self.MOD)) A = list(map(Modint, input().split())) S = input() res = A[0] for op_, value in zip(S, A[1:]): match op_: case "+": res += value case "-": res -= value case "*": res *= value case "/": res /= value print(res) if __name__ == "__main__": main()