留個板子
inline ll gao(ll a,ll b,ll c,ll n)//(a*i+b)/c的形式
{
if (!c)return 0;
if (a>=c||b>=c)
return (a/c)*n*(n+1)/2+(b/c)*(n+1)+gao(a%c,b%c,c,n);
else return (a*n+b)/c*n-gao(c,c-b-1,a,(a*n+b)/c-1);
}
留個板子
inline ll gao(ll a,ll b,ll c,ll n)//(a*i+b)/c的形式
{
if (!c)return 0;
if (a>=c||b>=c)
return (a/c)*n*(n+1)/2+(b/c)*(n+1)+gao(a%c,b%c,c,n);
else return (a*n+b)/c*n-gao(c,c-b-1,a,(a*n+b)/c-1);
}