Cod sursa(job #2344743)
| Utilizator | Data | 15 februarie 2019 16:03:16 | |
|---|---|---|---|
| Problema | Fractal | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include <fstream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int n,k,x,y,i,l;
int solve(){
int nr=0;
while(x>1 || y>1){
l/=2;
if(x<=l && y<=l){ //CADRAN I
swap(x,y);
}
else if(x>l && y<=l){ //CADRAN II
nr+=l*l;
x-=l;
}
else if(x>l && y>l){ //CADRAN III
nr+=2*l*l;
x-=l;
y-=l;
}
else{ //CADRAN IV
nr+=3*l*l;
y-=l;
y=l-y+1;
x=l-x+1;
swap(x,y);
}
}
return nr;
}
int main()
{
fin>>k>>y>>x;
l=(1<<k);
int sol=solve();
fout<<sol;
return 0;
}
