USACO 1.2-Dual Palindromes
/*
ID: m1590291
TASK: dualpal
LANG: C++
*/
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("dualpal.in");
ofstream fout ("dualpal.out");
const char a[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
int n, m;
bool check(int n, int m)
{
string s("");
do
{
s = a[n % m] + s;
n /= m;
} while (n > 0);
if (s.size() == 1) return true;
for (int i = 0; i <= s.size() / 2 - 1; i++)
if (s[i] != s[s.size() - i - 1])
return false;
return true;
}
int main(void)
{
int tot(0), k;
fin >> n >> m;
for (int i = m + 1; tot < n; i++)
{
k = 0;
for (int j = 2; j <= 10; j++)
{
if (check(i, j))
k++;
if (k == 2)
{
tot++;
fout << i << endl;
break;
}
}
}
return 0;
}
浙公网安备 33010602011771号