Cod sursa(job #1124044)
| Utilizator | Data | 26 februarie 2014 11:02:57 | |
|---|---|---|---|
| Problema | Fractal | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.11 kb |
#include <fstream>
using namespace std;
long long int n, c, l, i, pasi=0, lin, col, temp;
int main()
{
ifstream in ("fractal.in");
ofstream out ("fractal.out");
in>>n;
in>>c>>l;
for(i=n; i>=1; --i)
{
if(l>(1<<(i-1))&&c<=(1<<(i-1)))
{
pasi+=(1<<(i-1))*(1<<(i-1));
l-=(1<<(i-1));
}
else if(l>(1<<(i-1))&&c>(1<<(i-1)))
{
pasi+=2*(1<<(i-1))*(1<<(i-1));
l-=(1<<(i-1));
c-=(1<<(i-1));
}
else if(l<=(1<<(i-1))&&c>(1<<(i-1)))
{
pasi+=3*(1<<(i-1))*(1<<(i-1));
c-=(1<<(i-1));
lin=(1<<(i-1))+1-c;
col=(1<<(i-1))+1-l;
l=lin; c=col;
}
else
{
temp=c;
c=l;
l=temp;
}
}
out<<pasi<<"\n";
in.close();
out.close();
return 0;
}
