Pagini recente » Cod sursa (job #3140244) | Cod sursa (job #672843) | Cod sursa (job #2353668) | Cod sursa (job #2832238) | Cod sursa (job #2490180)
#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, y, x);
}
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>>y>>x;
initializare();
g<<fractal(k, x, y);
return 0;
}