Cod sursa(job #2120618)

Utilizator patcasrarespatcas rares danut patcasrares Data 2 februarie 2018 18:28:22
Problema Fractal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k,l,c,r;
void ve(int k,int l,int c)
{
    int p,fl,fc;
    if(k==1)
    {
        if(l==2&&c==1)
            r++;
        if(l==2&&c==2)
            r+=2;
        if(l==1&&c==2)
            r+=3;
        return;
    }
    if(l<=(1<<(k-1))&&c<=(1<<(k-1)))
    {
        ve(k-1,c,l);
        return;
    }
    if(l>(1<<(k-1))&&c<=(1<<(k-1)))
    {
        r+=(1<<k);
        ve(k-1,l-(1<<(k-1)),c);
        return;
    }
    if(l>(1<<(k-1))&&c>(1<<(k-1)))
    {
        r+=(1<<(k+1));
        ve(k-1,l-(1<<(k-1)),c-(1<<(k-1)));
        return;
    }
    if(l<=(1<<(k-1))&&c>(1<<(k-1)))
    {
        r+=(1<<k)+(1<<(k+1));
        c-=(1<<(k-1));
        p=(1<<(k-1));
        fl=l;
        fc=c;
        l=p-fc+1;
        c=p-fl+1;
        ve(k-1,l,c);
    }
}
int main()
{
    fin>>k>>c>>l;
    ve(k,l,c);
    fout<<r;
}