B. Yet Another Meme Problem

本文解析了一道关于数学算法的竞赛题目,通过分析方程a⋅b+a+b=conc(a,b)的特性,给出了一个高效的解决方案。该方案适用于给定两个整数A和B的情况,计算满足条件的数对(a,b)的数量。

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Try guessing the statement from this picture http://tiny.cc/ogyoiz.

You are given two integers AA and BB, calculate the number of pairs (a,b)(a,b) such that 1≤a≤A1≤a≤A, 1≤b≤B1≤b≤B, and the equation a⋅b+a+b=conc(a,b)a⋅b+a+b=conc(a,b) is true; conc(a,b)conc(a,b) is the concatenation of aa and bb (for example, conc(12,23)=1223conc(12,23)=1223, conc(100,11)=10011conc(100,11)=10011). aa and bb should not contain leading zeroes.

Input

The first line contains tt (1≤t≤1001≤t≤100) — the number of test cases.

Each test case contains two integers AA and BB (1≤A,B≤109)(1≤A,B≤109).

Output

Print one integer — the number of pairs (a,b)(a,b) such that 1≤a≤A1≤a≤A, 1≤b≤B1≤b≤B, and the equation a⋅b+a+b=conc(a,b)a⋅b+a+b=conc(a,b) is true.

Example

input

Copy

3
1 11
4 2
191 31415926

output

Copy

1
0
1337

Note

There is only one suitable pair in the first test case: a=1a=1, b=9b=9 (1+9+1⋅9=191+9+1⋅9=19).

 

解题说明:此题是一道数学题,对方程进行求解即可。



#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>

using namespace std;

int main()
{
	int t;
	scanf("%d", &t);
	long long int a, b;
	long long int ans;
	long long int p;
	for (; t > 0; t--)
	{
		scanf("%lld %lld", &a, &b);
		ans = 0;
		p = 9;
		while (p <= b)
		{
			ans += a;
			p = 10 * p + 9;
		}
		printf("%lld\n", ans);
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值