[noip]2014年提高組複賽day2 解方程
阿新 • • 發佈:2018-12-13
#include <iostream> #include <cstdio> using namespace std; const long long u1=1000000007;//設為常量,不然70 long long n,m,a[5000],x,ans,ans1[2000000],sum; char r; long long read() { long long flag=1,s=0; scanf("%c",&r); while(r<'0'||r>'9') { if(r=='-') flag=-1; scanf("%c",&r); } while(r>='0'&&r<='9') { s*=10; s=s+r-'0'; s%=u1; scanf("%c",&r); } return s*flag;//讀入優化 } int main() { long long i,j; cin>>n>>m; for(i=0;i<=n;i++) a[i]=read(); for(i=1;i<=m;i++) { sum=0; for(j=n;j>=1;j--) sum=(sum+a[j])*i%u1; sum=(sum+a[0])%u1; if(sum==0) ans1[++ans]=i; } cout<<ans<<endl; for(i=1;i<=ans;i++) cout<<ans1[i]<<endl; return 0; }