Cod sursa(job #964082)

Utilizator gabiclujGabi Florea gabicluj Data 20 iunie 2013 01:18:21
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <stdlib.h>
#include <stdio.h>
#include <math.h> 
 int distk1[3][3] = {    {0,0,0},    {0,0,1},    {0,3,2}};  int main(){    FILE* fin = fopen("fractal.in", "r");    FILE* fout = fopen("fractal.out", "w");      int k, x, y;    fscanf(fin, "%d %d %d", &k, &x, &y);      int steps = 0;    int lenk = pow((long double)2,k);      while (k > 1)    {        int mid = lenk / 2;        int block = 0;        if (x <= mid && y <= mid)        {            block = 1;            int tmp = x;            x = y;            y = tmp;        }        else if (x <= mid && y > mid)        {            block = 2;            y -= mid;        }        else if (x > mid && y > mid)        {            block = 3;            y -= mid;            x -= mid;        }        else        {            block = 4;            x -= mid;            x = mid - x + 1;            y = mid - y + 1;            int tmp = x;            x = y;            y = tmp;        }          steps += (block - 1) * (mid * mid - 1) + (block - 1);          lenk = mid;        k--;    }      steps += distk1[x][y];      fprintf(fout, "%d", steps);      fclose(fin);    fclose(fout);}