https://www.patest.cn/contests/pat-t-practise/1018
#include<iostream>
#include<string>
using namespace std;
const int mod = 1e9 + 7;
long long int A[100005];
int main() {
string s;
cin >> s;
int Len = s.size(), cnt = 0;
long long int re = 0;
for (int i = 1; i <= Len; ++i)
A[i] = (A[i-1]*10+1) % mod;
for (int i = 0; i < Len; ++i) {
if (s[i] != '0') ++cnt;
re=(re+A[Len - i] * (s[i] - '0')*cnt) % mod;
}
printf("%lld\n", re);
}