Cod sursa(job #2316469)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 11 ianuarie 2019 19:31:16
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("fractal.in");
ofstream g("fractal.out");

int k,x,y;
long long ans,i,j,a[30],p2[30];

int main()
{
    f>>k>>x>>y;
    swap(x,y);
    for(i=1;i<=k;i++)
        a[i]=a[i-1]*4+3;
    p2[0]=1;
    for(i=1;i<=k;i++)
        p2[i]=p2[i-1]*2;
    i=x,j=y;
    for(;k;k--)
    {
        //cout<<i<<' '<<j<<" : "<<ans<<'\n';
        if(i<=p2[k-1])
            if(j<=p2[k-1])
                swap(i,j);
            else
            {
                ans+=3*a[k-1]+3;
                long long newj=p2[k-1]+1-i;
                i=p2[k]+1-j;
                j=newj;
            }
        else
            if(j<=p2[k-1])
                ans+=  a[k-1]+1,i-=p2[k-1];
            else
                ans+=2*a[k-1]+2,i-=p2[k-1],j-=p2[k-1];
    }
    g<<ans;
    return 0;
}