题面数据吓人,其实可以暴力,因为不符合要求的数还是蛮多的,所以从左向右暴搜就好,至于为什么多,可以脑补下,整除11的数 ,如果加了3,产生了进位就极可能出错(有少数反例 所以我只判这个就wa了),还有一些其他情况,也满足条件,所以满足条件的情况蛮多的,而且分布均匀,所以暴大好。
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#include<stack>
#define inf 0x3f3f3f3f
#define ll long long
#define mod 1000000007
using namespace std;
#define bug puts("bugbugubgbugbug");
long long l,r;
int main()
{
long long t;
scanf("%d",&t);
while(t--)
{
long long ans=-1;
scanf("%lld%lld",&l,&r);
while(l%11!=3)
l++;
for(long long i=l;i<=r;i+=11)
{
long long sum1=0;
long long ii=i;
while(ii)
{
sum1=sum1+ii%10;
ii=ii/10;
sum1=sum1-ii%10;
ii=ii/10;
}
if(sum1!=3)
{
ans=i;
break;
}
}
printf("%lld\n",ans);
}
}