앞 문제와 거의 유사한 문제..
string fromDecimal(int n, int b)
{
string result;
while(n>0)
{
if(n%b >= 10) result += 'A'+(n%b)%10;
else result += '0' + (n%b);
n/=b;
}
reverse(ALL(result));
return result;
}
bool is_pal(string s)
{
int n = s.size();
REP(i, n/2)
{
if( s[i] != s[n-1-i] ) return false;
}
return true;
}
int main() {
ofstream fout ("dualpal.out");
ifstream fin ("dualpal.in");
int n, s;
fin >> n >> s;
for(int i=s+1; n > 0 ; i++)
{
int cnt = 0;
for(int j=2; j<=10; j++)
{
string str = fromDecimal(i, j);
if( is_pal(str) ) cnt++;
if( cnt > 1)
{
fout << i << endl;
n--;
break;
}
}
}
return 0;
}
반응형