😽
ABC353D
問題
解法
桁の問題なので,
左の桁
実際,
右の桁
コード
main.cpp
ll keta(ll n){
ll k = 0;
while(n){
n /= 10;
k++;
}
return k;
}
int main() {
ll n;
cin >> n;
vll a(n); rep(i,n) { cin >> a[i]; }
reverse(all(a));
mint ans;
mint s = 0;
rep(i,n){
ans += s * a[i];
s += mint(10).pow(keta(a[i]));
}
rep(j,n){
ans += mint(a[j]) * mint(n-1-j);
}
cout << ans.val() << endl;
return 0;
}
Discussion