问个问题
查看原帖
问个问题
352363
C_S_L楼主2021/8/15 21:31

为啥我这题的程序不开O2O_2能过,开了就不能过呢?

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD=(1e9)+7;
int n;
ll m,a[110],x[1000010],cnt;
char s[10010];
bool cal(ll x) {
	ll y=a[n+1];
	for(int i=n; i>=1; --i) {
		y=(y*x+a[i])%MOD;
	}
	return y==0;
}
int main() {
	scanf("%d%d",&n,&m);
	for(int i=1; i<=n+1; ++i) {
		scanf("%s",s);
		if(s[0]=='-') {
			for(int j=1; j<strlen(s); ++j) {
				a[i]=(a[i]*10+s[j]-48)%MOD;
			}
			a[i]=-a[i];
		} else {
			for(int j=0; j<strlen(s); ++j) {
				a[i]=(a[i]*10+s[j]-48)%MOD;
			}
		}
	}
	for(ll i=1; i<=m; ++i) {
		if(cal(i)) {
			x[++cnt]=i;
		}
	}
	printf("%d\n",cnt);
	for(int i=1; i<=cnt; ++i) {
		printf("%d\n",x[i]);
	}
	return 0;
}
2021/8/15 21:31
加载中...