SRM303 div1 easy (div2 medium)

座標変換でこんがらがる

  string getPosition(int N) {
    int dir[4][2] = { {0, -1}, {-1, 0}, {0, 1}, {1, 0} };
    int index = ((int)sqrt(N)-1)/2;
    int num = (index*2+1)*(index*2+1);
    int start = index+1;
    int x = start; int y = start;
    for(int i = 0; i < N-num; i++) {
      x += dir[i/(start*2)][0];
      y += dir[i/(start*2)][1];

    }
    if(N-num == 0) {
      x = start-1; y = start-1;
    }
    char ans[22];
    sprintf(ans, "(%d,%d)", -y, x);
    return string(ans);
  }