Cod sursa(job #3188143)

Utilizator CipriEuCruceanu Ciprian Constantin CipriEu Data 1 ianuarie 2024 22:08:04
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
int fractal(int x, int y, int k){
    //cout<<x<<" "<<y<<" "<<k<<"\n";
    if(k==0) return 0;
    if(x <= (1<<(k-1)) && y <= (1<<(k-1))) return 0*(1<<(k*2-2)) + fractal(y, x, k-1);
    if(x > (1<<(k-1)) && y <= (1<<(k-1))) return 1*(1<<(k*2-2)) + fractal(x-(1<<(k-1)), y, k-1);
    if(x > (1<<(k-1)) && y > (1<<(k-1))) return 2*(1<<(k*2-2)) + fractal(x-(1<<(k-1)), y-(1<<(k-1)), k-1);
    if(x <= (1<<(k-1)) && y > (1<<(k-1))) return 3*(1<<(k*2-2)) + fractal(x + ((1<<(k-1))+1 - (x + (y-(1<<(k-1))))), y-(1<<(k-1)) + ((1<<(k-1))+1 - (x + (y-(1<<(k-1))))), k-1);
}
int main(){
    fin>>k>>y>>x;
    fout<<fractal(x, y, k);
}