Pagini recente » Cod sursa (job #740904) | Cod sursa (job #1046334) | Cod sursa (job #522916) | Cod sursa (job #2735884) | Cod sursa (job #1125507)
#include <fstream>
using namespace std;
FILE * fin, * fout;
int power2[17];
int main()
{
fin = fopen("fractal.in", "r");
fout = fopen("fractal.out", "w");
short k, i;
power2[0] = 1;
for (k = 1; k <= 16; ++k)
power2[k] = power2[k-1] * 2;
int x, y, temp;
long z = 0;
fscanf(fin, "%hd %d %d\n", &k, &y, &x);
for (i = k - 1; i >= 0; --i)
{
if (x > power2[i])
{
if (y > power2[i])
{
z += 2 * power2[i]* power2[i];
x -= power2[i];
y -= power2[i];
}//3
else
{
z += power2[i]* power2[i];
x -= power2[i];
}//2s
}
else
{
if (y > power2[i])
{
z += 3 * power2[i]* power2[i];
temp = power2[i] - x + 1;
x = power2[i + 1] - y + 1;
y = temp;
}//4
else
{
temp = x;
x = y;
y = temp;
}//1
}
}
fprintf(fout, "%d\n", z);
fclose(fin);
fclose(fout);
return 0;
}