欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Yet Another Meme Problem(打表找规律)

程序员文章站 2024-03-18 16:30:34
...

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
3
1 11
4 2
191 31415926
Output
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).
对照样例进行打表找规律。
规律如下:
Yet Another Meme Problem(打表找规律)
代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;

ll A,B;
ll C[]={9,99,999,9999,99999,999999,9999999,99999999,999999999}; //一共是9个,一开始少了一个,wa了两次
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		cin>>A>>B;
		int pos=upper_bound(C,C+9,B)-C;
		cout<<A*(ll)pos<<endl;
	}
	return 0;
}

努力加油a啊,(o)/~

相关标签: 打表