#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
using namespace std;
double P(unsigned int n, double x)
{
if (n == 0) return 1;
if (n == 1) return x;
double p0 = 1, p1 = x;
for(unsigned int i = 2; i <= n; ++i)
{
double p = (2*i-1)*x*p1-p0;
p0 = p1;
p1 = p;
}
return p1;
}
double R(unsigned int n, double x)
{
if (n == 0) return 1;
if (n == 1) return x;
return (2*n-1)*x*R(n-1,x)-R(n-2,x);
}
int main(int argc, const char * argv[])
{
for(int n = 0; n < 60; ++n)
cout << P(n,0.1) << " " << R(n,0.1) << endl;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgUCh1bnNpZ25lZCBpbnQgbiwgZG91YmxlIHgpCnsKICAgIGlmIChuID09IDApIHJldHVybiAxOwogICAgaWYgKG4gPT0gMSkgcmV0dXJuIHg7CiAgICBkb3VibGUgcDAgPSAxLCBwMSA9IHg7CiAgICBmb3IodW5zaWduZWQgaW50IGkgPSAyOyBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBkb3VibGUgcCA9ICgyKmktMSkqeCpwMS1wMDsKICAgICAgICBwMCA9IHAxOwogICAgICAgIHAxID0gcDsKICAgIH0KICAgIHJldHVybiBwMTsKfQoKZG91YmxlIFIodW5zaWduZWQgaW50IG4sIGRvdWJsZSB4KQp7CiAgICBpZiAobiA9PSAwKSByZXR1cm4gMTsKICAgIGlmIChuID09IDEpIHJldHVybiB4OwogICAgcmV0dXJuICgyKm4tMSkqeCpSKG4tMSx4KS1SKG4tMix4KTsKfQoKCgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkKewogICAgZm9yKGludCBuID0gMDsgbiA8IDYwOyArK24pCiAgICAgICAgY291dCA8PCBQKG4sMC4xKSA8PCAiICAiIDw8IFIobiwwLjEpIDw8IGVuZGw7Cn0K