跳到主要内容

SLON

· 阅读需 2 分钟

[COCI 2015/2016 #3] SLON​

题干

题目描述

小 Q 在学校里非常调皮。

他上课时总是很无聊,他总是把课堂弄得一团糟。老师希望让他冷静下来,所以给他出了一道很难的数学题。

老师给小 Q 一个算术表达式 AA、整数 PP 和 MM,小 Q 要回答的是以下问题:

求最小非负整数 xx,使含 xx 的表达式 AA 除以 MM 余数等于 PP。

注意每一个运算符均会连接两个数或是变量。每一个乘号都不会省略且不允许连接两个含有 xx 的表达式。括号均合法,可能存在括号内容仅有一个数或变量的情况。

题目保证原表达式化简后一定能写成一个形如 kx+bkx+b 的一元一次式。

输入格式

第一行,一行表达式 AA。

第二行,两个正整数 P,MP, M。

输出格式

第一行,一个正整数 xx。

输入输出样例 #1

输入 #1

5+3+x
9 10

输出 #1

1

输入输出样例 #2

输入 #2

20+3+x
0 5

输出 #2

2

说明/提示

数据规模及约定

对于 100%100\% 的数据:

  • 令 ∣A∣|A| 为字符串 AA 的长度,那么 1≤∣A∣≤1051 \le |A| \le 10 ^ 5。
  • 表达式 AA 中仅会有 +\texttt{+},-\texttt{-},*\texttt{*},(\texttt{(},)\texttt{)},x\texttt{x},和 0\texttt{0} ∼\sim 9\texttt{9}。
  • 0≤P≤M−10 \le P \le M - 1。
  • 1≤M≤1061 \le M \le 10 ^ 6。

说明

翻译自 COCI 2015-2016 #3 D SLON,满分 120。


分析​

构史题目

首先我们发现这个是个模板,把式子处理出来再套个exgcdexgcd或枚举就行了

但是好难写


AC代码​

Code
写不动了QAQ