luogu#P9215. [入门赛 #11] [yLOI2021] 扶苏与 1 (Hard Version)

    ID: 13197 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>2023Special JudgeO2优化构造语言月赛

[入门赛 #11] [yLOI2021] 扶苏与 1 (Hard Version)

题目背景

本题与 Easy Version 的区别是:xx 的范围不同,yy 的长度限制不同

请注意 Easy Version 和 Hard Version 不是严格的包含关系。

扶苏在 ICPC2022 EC Final 的比赛里,开局不到五分钟,就读假了一道题,把一道数位 DP 开成了简单签到,狠狠地演了队友一把。

为了不让读假了的题被浪费,所以这道题出现在了这里。

题目描述

扶苏给了你一个数字 xx,你需要给她一个数字 yy,使得在列竖式计算 x+yx + y 时,能恰好产生 kk 个进位。

你给出的 yy 的长度不能超过 xx 的长度。(注意,这条要求与 Easy Version 不同)

进位的含义是:在进行竖式加法运算时,如果位于同一列上的数字之和(加上低位向上可能存在的进位)比 99 大,则在结果的这一列上只保留这个和的个位数字,同时称这一位向它的高位产生了一个进位

下图是一个竖式加法的例子,结果中标红的两位都向上产生了进位。

输入格式

本题单测试点内有多组测试数据

第一行为一个整数 TT,代表测试数据组数。
接下来 TT 组数据,每组数据只有两行,每行一个整数。
第一行的整数表示 xx
第二行的整数表示 kk

输出格式

本题采用 special judge 进行判题

对每组数据,输出一行一个整数,表示你给出的 yy

如果有多个满足要求的 yy,你可以输出任何一个。但是必须保证如下三条限制:

  • yy 是正整数。
  • yy 不含前导 00
  • yy 的长度不超过 xx 的长度。

特别的,如果这样的 yy 不存在,请你输出一行一个 -1\texttt{-1}

5
1
1
14
1
514
2
1234
1
123456
6
9
8
516
7
877777

提示

数据规模与约定

对全部的测试点,保证 0x<10(104)0 \leq x < 10^{(10^4)}1T50001 \leq T \leq 50001k1+log10max(1,x)1 \leq k \leq 1+\log_{10}\max(1,x)。输入的 xx 不含前导 00

提示

输入的 xx 可能会很大。如果说 x<10tx < 10^t,则输入 xx长度不会超过 tt。数据规模中式子 k1+log10max(1,x)k \leq 1 + \log_{10}\max(1,x) 的含义是:kk 不会超过 xx 的长度。