Pagini recente » Cod sursa (job #2279093) | Cod sursa (job #563575) | Cod sursa (job #1460630) | Cod sursa (job #934) | Cod sursa (job #2490171)
#include<bits/stdc++.h>
using namespace std;
ifstream f("fractal.in");
ofstream g("fractal.out");
int ord[16], p[16];
void initializare()
{
p[0] = 1;
p[1] = 2;
ord[1] = 3;
for(int i = 2; i <= 15; i++){
p[i] = 2 * p[i - 1];
ord[i] = 4 * ord[i - 1] + 3;
}
}
int fractal(int k, int x, int y)
{
if(k == 0)
return 0;
if(x <= p[k - 1]){
if(y <= p[k - 1])
return fractal(k - 1, x, y);
else
return 3 + 3 * ord[k-1] + fractal(k - 1, 2 * p[k - 1] - y + 1, p[k - 1] - x + 1);
}
else{
if(y <= p[k - 1]){
return 1 + ord[k - 1] + fractal(k - 1, x - p[k - 1], y);
}
else{
return 2 + 2 * ord[k - 1] + fractal(k - 1, x - p[k - 1], y - p[k -1]);
}
}
}
int main()
{
int k, x, y;
f>>k>>x>>y;
initializare();
g<<fractal(k, x, y);
return 0;
}