Cod sursa(job #2125040)
Utilizator | Data | 7 februarie 2018 21:16:14 | |
---|---|---|---|
Problema | Fractal | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <bits/stdc++.h>
using namespace std;
int t;
void fr(int n, int x, int y, int k){
if (!n){
return;
}
k>>=1;
if (x<=k){
if (y<=k){
fr(n-1,x,y,k);
}
else{
t+=3*k*k;
fr(n-1,x,y-k,k);
}
}
else{
if (y<=k){
t+=k*k;
fr(n-1,x-k,y,k);
}
else{
t+=2*k*k;
fr(n-1,x-k,y-k,k);
}
}
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
int n,x,y,k=1,i;
scanf("%d%d%d",&n,&x,&y);
//swap(x,y);
for (i=1;i<=n;i++) k*=2;
fr(n,x,y,k);
printf("%d",t);
return 0;
}