Cod sursa(job #1792598)

Utilizator robx12lnLinca Robert robx12ln Data 30 octombrie 2016 16:16:48
Problema Fractal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
long long sol = 0;
void f( int k, int x, int y ){
    int n = (1<<k);
    if( k > 0 ){
        if( x <= n / 2 && y <= n / 2 ){
            sol += 0;
            f( k - 1, y, x );
        }
        if( n / 2 < x &&  y <= n / 2 ){
            sol += 1LL * (n / 2) * (n / 2);
            f( k - 1, x - n / 2, y );
        }
        if( n / 2 < x && n / 2 < y ){
            sol += 2LL * (n / 2) * (n / 2);
            f( k - 1, x - n / 2, y - n / 2 );
        }
        if( x <= n / 2 && n / 2 < y ){
            sol += 3LL * (n / 2) * (n / 2);
            f( k - 1, y - n / 2 + 1, n / 2 - x + 1 );
        }
    }
    return ;
}
int main(){
    fin >> k >> x >> y;
    f( k, x, y );
    fout << sol;
    return 0;
}