Run Time: 0.000
Ranking (as of 2016-11-15): 26 out of 402
Language: C++
/*
UVa 11133 - Eigensequence
To build using Visual Studio 2012:
cl -EHsc -O2 UVa_11133_Eigensequence.cpp
*/
#include <cstdio>
const int an_max = 44;
int nr_ess[an_max + 1][an_max + 1];
// nr_ess[i][j] is the number of eigensequences that start with i and end with j
int eigensequence(int a1, int an)
{
int& nr = nr_ess[a1][an];
if (nr == -1) {
nr = 0;
for (int i = 1; i <= an - a1; i++)
if (!(a1 % i))
nr += eigensequence(a1 + i, an);
}
return nr;
}
int main()
{
while (true) {
int a1, an;
scanf("%d %d", &a1, &an);
if (a1 >= an)
break;
for (int i = a1; i <= an; i++)
for (int j = a1; j <= an; j++)
nr_ess[i][j] = (i == j) ? 1 : ((i > j) ? 0 : -1);
printf("%d %d %d\n", a1, an, eigensequence(a1, an));
}
return 0;
}
No comments:
Post a Comment