Pagini recente » Cod sursa (job #1324116) | Cod sursa (job #645029) | Cod sursa (job #742432) | Cod sursa (job #3189354) | Cod sursa (job #179251)
Cod sursa(job #179251)
#include <fstream>
#define MAX 101
using namespace std;
int a[MAX][MAX][3][MAX], K;
int rez[MAX];
int n, A, B;
int main()
{
int i, j, k, t, p;
ifstream fin("pavare2.in");
fin >> n >> A >> B >> K;
fin.close();
for (i = 1; i <= n; i++)
{
for (j = 1; j <= A && j <= i; j++)
{
if (i == j)
{
a[i][j][0][0] = 1;
a[i][j][0][1] = 1;
}
else
{
a[i][j][0][0] = 1;
for (k = 1; k <= B && k <= i-j; k++)
{
t = 0;
for (p = 1; p <= a[i][j][0][0] || p <= a[i-j][k][1][0] || t; p++, t/=10)
a[i][j][0][p] = (t += a[i][j][0][p] + a[i-j][k][1][p]) % 10;
a[i][j][0][0] = p-1;
}
}
}
for (j = 1; j <= B && j <= i; j++)
{
if (i == j)
{
a[i][j][1][0] = 1;
a[i][j][1][1] = 1;
}
else
{
a[i][j][1][0] = 1;
for (k = 1; k <= A && k <= i-j; k++)
{
t = 0;
for (p = 1; p <= a[i][j][1][0] || p <= a[i-j][k][0][0] || t; p++, t/=10)
a[i][j][1][p] = (t += a[i][j][1][p] + a[i-j][k][0][p]) % 10;
a[i][j][1][0] = p-1;
}
}
}
}
ofstream fout("pavare2.out");
rez[0] = 1;
for (i = 1; i <= A; i++)
{
t = 0;
for (p = 1; p <= rez[0] || p <= a[n][i][0][0] || t; p++, t/=10)
rez[p] = (t += rez[p] + a[n][i][0][p]) % 10;
rez[0] = p-1;
}
for (i = 1; i <= B; i++)
{
t = 0;
for (p = 1; p <= rez[0] || p <= a[n][i][1][0] || t; p++, t/=10)
rez[p] = (t += rez[p] + a[n][i][1][p]) % 10;
rez[0] = p-1;
}
for (i = rez[0]; i >= 1; i--)
fout << rez[i];
fout << "\n";
j = 0;
for (i = 1; i <= n; i++)
{
if (j < A)
{
fout << "0";
j++;
}
else
{
fout << "1";
j = 0;
}
}
fout.close();
return 0;
}