记录编号 38891 评测结果 AAAAAAAAAA
题目名称 [RQNOJ 166] 隐藏的信息 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.012 s
提交时间 2012-06-20 13:44:32 内存使用 0.29 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
const int MAXN=11;
int num[MAXN],s,e,now,ans,len;
bool flag=0;
 
inline int gcd(int a,int b)
{
    while(b^=a^=b^=a%=b);
    return a;
}
 
inline int lcm(int a,int b)
{
    return (a*b)/gcd(a,b);
}
 
inline void convert(int x)
{
    int k=0;
    while(x)
    {
        k++;
        num[k]=x%10;
        x/=10;
    }
    len=k;
    sort(num+1,num+len+1);
}
 
inline int atoi()
{
    int res=0;
    for(int i=1;i<=len;i++) res=res*10+num[i];
    return res;
}
 
inline void check(int k)
{
    if(k%ans==0) {printf("%d\n",k);flag=1;return;}
}
 
int main()
{
    freopen("lcsa.in","r",stdin);
    freopen("lcsa.out","w",stdout);
    scanf("%d\n%d %d\n",&now,&s,&e);
    ans=1; for(int i=s;i<=e;i++) ans=lcm(ans,i);
    //printf("%d\n",ans); 
    convert(now); now=atoi();  check(now);
    while(next_permutation(num+1,num+len+1))
    {
        now=atoi(); check(now);
    }
    if(!flag) printf("No answer\n");
    return 0;
}