AtCoder Beginner Contest #129
問題文
省略
省略
C++に変換後のコードはこちら
ll L, A, B;
int M;
{
ll i, j, k;
ll p;
modint res;
Matrix<modint> mt, vc;
rd(L,A,B,M);
res.setmod(M);
mt.changeSize(3,3);
vc.changeSize(3,1);
vc[0][0] = 0;
vc[1][0] = A;
vc[2][0] = B;
p = 1;
while(L){
p *= 10;
if(A >= p) continue;
k = min(L, (p-1-A)/B+1);
L -= k;
A += k*B;
mt = 0;
mt[0][0] = p;
mt[0][1] = mt[1][1] = mt[1][2] = mt[2][2] = 1;
vc = (mt ** k) * vc;
}
res = vc[0][0];
wt(res);
}
Current time: 2024年04月26日17時46分42秒
Last modified: 2019年07月07日16時10分16秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC129 ABC_F
トップページに戻る
Logged in as: unknown user (not login)