1000000007 のモジュラスとともに 2 つの非常に大きな整数を減算する必要があります
x と y は整数 1 <= x,y <= 1000
long long s[x+1];
long long c[x+1];
for(int i=1;i<=x;i++)
c[i] = power(y,i)%mod;
s[1]=1;
for(int i=2;i<=x;i++){
sum=0;
for(int j=1;j<i;j++){
sum = (sum + (s[j]*c[i-j]%mod))%mod;
}
s[i] = (c[i] - sum)%mod; // <----------- s[i] is -ve
}
問題はc[i]%mod
が より小さい場合ですSum%mod
例: c[i] が Sum より大きい場合。
ただし、
437001927 ~ 952742480c[i]%mod
未満Sum%mod