Cod sursa(job #2856084)
| Utilizator | Data | 23 februarie 2022 12:42:46 | |
|---|---|---|---|
| Problema | Fractal | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int n, x, y;
int main() {
fin >> n >> x >> y;
fin.close();
int l = (1 << n);
long long int val = 0;
while(l > 0) {
l /= 2;
if(x <= l && y <= l) {
swap(x, y);
} else if(y > l && x <= l) {
val += l * l;
y -= l;
} else if(y > l && x > l) {
val += 2ll * l * l;
y -= l;
x -= l;
} else {
val += 3ll * l * l;
x -= l;
int aux = l - x + 1;
x = l - y + 1;
y = aux;
}
}
fout << val;
return 0;
}