比赛 20120619 评测结果 AWWWWWWWWW
题目名称 隐藏的信息 最终得分 10
用户昵称 TBK 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-06-19 20:25:40
显示代码纯文本
#include <iostream> 
#include <cmath> 
#include <cstring> 
#include <string> 
#include <cstdio> 
#include <cstdlib> 
#include <iomanip> 
#include <set> 
#include <algorithm> 
#define MAXN 0x7fffffff 
using namespace std; 
int a[10],b,c,d,l,m,n,x,y,z,test,as[20000000],ac;
long long t;
int Compare(const void*elem1,const void*elem2)
{
	return *(int *)elem1 -*(int *)elem2;
}
int gcd(int x,int y) 
{     
	if (x==0) return y;     
	if (y==0) return x;     
	if (x<y)     
	{         
		test=x;      
		x=y;       
		y=test;    
	}     
	if (x%y==0) return y;  
	return gcd(y,x%y); 
} 
void DFS(int k)
{
	int i,j;
	if (k==c)
	{
		if (test%t==0)
		{
			as[ac]=test;
			ac++;
		}
		return;
	}
	for (i=c;i>=1;i--)
		if (a[i]==0) 
		{
			a[i]++;
			test+=(i*(int)pow(10.0,(double)k));
			DFS(k+1);
			a[i]--;
			test-=(i*(int)pow(10.0,(double)k));
		}
}
int main(void) 
{    
    freopen("lcsa.in","r",stdin); 
    freopen("lcsa.out","w",stdout); 
	scanf("%d",&b);
	c=(int)log10((double)b)+1;
	scanf("%d%d",&l,&m);
	t=l;
	for (d=l+1;d<=m;d++)
	{
		n=gcd(t,d);
		t*=d;
		t/=n;
	}
	test=0;
	DFS(0);
	qsort(as,ac,sizeof(int),Compare);
	for (d=0;d<ac;d++) cout<<as[d]<<endl;
    fclose(stdin);
    fclose(stdout); 
    return 0; 
}