记录编号 364509 评测结果 AAAAAAA
题目名称 双重回文数 最终得分 100
用户昵称 GravatarHeHe 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2017-01-16 20:30:43 内存使用 0.36 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 1234
struct kkk{
	int s[MAXN];
	int len,jz;
	kkk()
	{
		memset(s,0,sizeof(s));
		len=0;
	}
	kkk operator=(int n)
	{
		if(n==0)
		{
			len=1;
			return *this;
		}
		while(n)
		{
			s[len]=n%jz;
			n/=jz;
			len++; 
		}
		return *this;
	}
	kkk operator++()
	{
		s[0]+=1;
		int i(0);
		while(s[i]>=jz)
		{
			s[i+1]+=1;
			s[i]-=jz;
			i++;
		}
		i++;
		if(i>len)len=i;
		return *this;
	}
	bool pan()
	{
		int i(0),j(len-1);
		while(i<j)
		  if(s[i]!=s[j])return 0;
		    else i++,j--;
		return 1;
	}
};
class ans{
private:
	kkk num[11];
	int sum,sta;
public:
	ans()
	{
		for(int i=2;i<11;i++)
		  num[i].jz=i;
	}
	ans operator++()
	{
		for(int i=2;i<11;i++)
		  ++num[i];
		return *this;
	}
	void Get()
	{
		scanf("%d%d",&sum,&sta); 
		for(int i=2;i<11;i++)
		  num[i]=sta;
		return ;
	}
	bool Pan()
	{
		int p(0);
		for(int i=2;i<11;i++)
		{
			if(num[i].pan())++p;
			if(p==2)return 1;
		}
		return 0;
	}
	void work()
	{
		for(int i(sta+1);sum>0;i++)
		{
			++(*this);
			if(Pan())
			{
				cout<<i<<"\n";
				sum--;
			}
		}
		return ;
	}
}hehe;
int main()
{
	freopen("dualpal.in","r",stdin);
	freopen("dualpal.out","w",stdout);
	hehe.Get();
	hehe. work(); 
	return 0;
}