tile ÈùÆ®

¼Ò½º:

#include <stdio.h>

int board[100][100];
int tile=0;
int size,dr,dc; /* dr Àº ¹è¼ö±¸ÀÇ Çà, dc ´Â ¹è¼ö±¸ÀÇ ·Ä */

void tileboard(int toprow,int topcol,int dr,int dc,int size)
{
   int tiletouse;
   int quadrantsize;
   
   if (size==1) return;

   tiletouse=++tile;//»ç¿ëÇÒ Å¸ÀÏ ¹øÈ£
   quadrantsize=size/2;
  
   //4 µîºÐ ÇÑ  À§ ¿ÞÂÊ »ç°¢Çü 
   if (dr< toprow + quadrantsize && dc< topcol+quadrantsize)
      //¹è¼ö·Î°¡ ÀÖ´Â °æ¿ì
      tileboard(toprow,topcol,dr,dc,quadrantsize);
   else{
      //¹è¼ö·Î°¡ ¾ø´Â °æ¿ì
      board[toprow+quadrantsize-1][topcol+quadrantsize -1]=tiletouse;
      tileboard(toprow,topcol,toprow+quadrantsize-1,topcol+quadrantsize-1,quadrantsize);
   }

   //4 µîºÐÇÑ  À§ ¿À¸¥ÂÊ »ç°¢Çü
   if (dr< toprow + quadrantsize && dc>= topcol+quadrantsize)
      tileboard(toprow,topcol+quadrantsize,dr,dc,quadrantsize);
   else{
      board[toprow+quadrantsize-1][topcol+quadrantsize]=tiletouse;
      tileboard(toprow,topcol+quadrantsize,toprow+quadrantsize-1,topcol+quadrantsize,quadrantsize);
   }

   //4 µîºÐÇÑ  ¾Æ·¡ ¿ÞÂÊ »ç°¢Çü
   if (dr>= toprow + quadrantsize && dc< topcol+quadrantsize)
      tileboard(toprow+quadrantsize,topcol,dr,dc,quadrantsize);
   else{
      board[toprow+quadrantsize][topcol+quadrantsize -1]=tiletouse;
      tileboard(toprow+quadrantsize,topcol,toprow+quadrantsize,topcol+quadrantsize-1,quadrantsize);
   }

   //4 µîºÐÇÑ  ¾Æ·¡ ¿À¸¥ÂÊ »ç°¢Çü 
   if (dr>= toprow + quadrantsize && dc>= topcol+quadrantsize)
      tileboard(toprow+quadrantsize,topcol+quadrantsize,dr,dc,quadrantsize);
   else{
      board[toprow+quadrantsize][topcol+quadrantsize]=tiletouse;
      tileboard(toprow+quadrantsize,topcol+quadrantsize,toprow+quadrantsize,topcol+quadrantsize,quadrantsize);
   }
}

int main()
{
   scanf("%d %d %d",&size,&dr,&dc);
   tileboard(1,1,dr,dc,size);

   //Ãâ·Â...

   return 0;
}