hdu 4956
1546 ワード
http://acm.hdu.edu.cn/showproblem.php?pid=4956
まず範囲[l,r]を与えて、中から一つの数の証明を見つけられるかどうか聞いてください. Hanamichi’s solutionの解法 奇数桁の数字の和 = 3 そしてこのXはX mod 11=3を満たすのが間違っています.つまり、範囲内では、①偶数桁の数字の合計があるかどうかを探します. 奇数桁の数字の和 = 3.②X mod 11=3
暴力
まず範囲[l,r]を与えて、中から一つの数の証明を見つけられるかどうか聞いてください. Hanamichi’s solutionの解法 奇数桁の数字の和 = 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
",ans);
}
return 0;
}