比赛 2022级DP专题练习赛4 评测结果 AAAAAAAAAA
题目名称 数字统计 最终得分 100
用户昵称 HeSn 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2023-02-20 20:12:45
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long 
int a, b, f2[20], f1[20], cnta[20], cntb[20];
void solve(int x, int *c) {
    int num[20] = {0}, cnt = 0;
    while(x) {
        num[++ cnt] = x % 10;
        x = x / 10;
    } 
    for(int i = cnt; i >= 1; i --) {
        for(int j = 0; j <= 9; j ++) {
        	c[j] += f1[i - 1] * num[i];
        }
        for(int j = 0; j < num[i]; j ++) {
        	c[j] += f2[i - 1];
        } 
        int num2 = 0;
        for(int j = i - 1; j >= 1; j --) {
            num2 = num2 * 10 + num[j];
        }
        c[num[i]] += num2 + 1;
        c[0] -= f2[i - 1];
    } 
}
signed main() {
	freopen("countzj.in", "r", stdin);
	freopen("countzj.out", "w", stdout);
	cin >> a >> b;
    f2[0] = 1;
    for(int i = 1; i <= 15; i ++) {
        f1[i] = f1[i - 1] * 10 + f2[i - 1];
        f2[i] = 10 * f2[i - 1];
    }
    solve(a - 1, cnta);
    solve(b, cntb);
    for(int i = 0; i <= 9; i ++) {
    	cout << cntb[i] - cnta[i] << ' ';
    }
    return 0;
}