比赛 4043级NOIP2022欢乐赛2nd 评测结果 AAAAAAAAAA
题目名称 定价 最终得分 100
用户昵称 lihaoze 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-10-31 20:53:37
显示代码纯文本
#include "bits/stdc++.h"

const int INF = INT_MAX;
int q;
int power[10];

int calc(int x) { 
    while (x % 10 == 0) {
        x /= 10;
    }
    int back = x % 10;
    int len = 0;
    while (x) {
        x /= 10, ++ len;
    }
    if (back == 5) {
        return 2 * len - 1;
    } else {
        return 2 * len;
    }
}

int zeros(int x) {
    int ret = 0;
    while (x % 10 == 0) {
        ++ ret, x /= 10;
    }
    return ret;
}

int main() {
    freopen("absurd.in", "r", stdin); 
    freopen("absurd.out", "w", stdout);
    power[0] = 1;
    for (int i = 1; i <= 9; ++ i) {
        power[i] = power[i - 1] * 10;
    }
    std::cin >> q;
    while (q --) {
        int l, r, min = INF;
        std::cin >> l >> r;
        int ans = 0;
        for (int i = l; i <= r; i += power[zeros(i)]) {
            if (min > calc(i)) {
                min = calc(i), ans = i;
            }
        }
        std::cout << ans << '\n';
    }
    return 0;
}