http://acm.hdu.edu.cn/showproblem.php?pid=4956
首先给出一个范围 [l, r],问能否从中找到一个数证明 Hanamichi’s solution 的解法(对于某个数 X,偶数位的数字之和 - 奇数位的数字之和 = 3 而且 这个 X 满足 X mod 11 = 3 )是错的。也就是在范围里寻找是否存在不能同时满足:①偶数位的数字之和 - 奇数位的数字之和 = 3; ②X mod 11 = 3;
暴力
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include<set>
#include <iostream>
#include <algorithm>
using namespace std;
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define clr0(x) memset(x,0,sizeof(x))
typedef long long LL;
bool sum(LL n)
{
int ans = 0,cnt = 0;
while(n){
if(cnt&1)
ans -= n%10;
else
ans += n%10;
n/=10;
cnt++;
}
//cout<<ans<<endl;
if(ans == 3)
return true;
return false;
}
int main() {
//cout<<sum(102);
int _;
RD(_);
LL l,r;
while(_--){
scanf("%I64d%I64d",&l,&r);
LL ll = l/11,rr = (r+8)/11,ans;
ans = 11*ll+3;
while(ans<l)
ans+=11;
while(sum(ans)){
ans+=11;
if(ans > r)
break;
}
if(ans>r){
puts("-1");
}
else
printf("%I64d\n",ans);
}
return 0;
}