2019年07月27日23時16分39秒に更新されたバージョンを表示しています.
最新のページはこちらをご覧ください.


AtCoder Beginner Contest 135 E問題 - Golf

Source

AtCoder Beginner Contest 135
問題文

問題概要

省略

解法

省略

cLayversion 20190721-1)のコード

C++に変換後のコードはこちら

int K, X, Y;

int cx, cy;
int ress, resx[200000], resy[200000];

{
  int i, j, r, res;
  int dx, dy, fx, fy;
  rd(K,X,Y);

  if(K%2 == 0 && (X+Y)%%2 == 1){
    wt(-1);
    return 0;
  }

  while(X != cx || Y != cy){
    dx = abs(cx - X);
    dy = abs(cy - Y);
    fx = if[cx < X, 1, -1];
    fy = if[cy < Y, 1, -1];

    if(dx+dy == K){
      cx = X;
      cy = Y;
    } else if( dx+dy >= 2K || (K%2==1 && (dx+dy)%2==1) ){
      i = min(K, dx);
      cx += fx * i;
      cy += fy * (K - i);
    } else {
      r = (2K - dx - dy) / 2;

      if(dx <= K - r){
        i = dx + r;
        j = K - i;
      } else {
        j = dy + r;
        i = K - j;
      }

      cx += fx * i;
      cy += fy * j;
    }

    resx[ress] = cx;
    resy[ress] = cy;
    ress++;
  }

  wt(ress);
  rep(i,ress) wt(resx[i], resy[i]);
}

Current time: 2021年11月29日18時41分11秒
Last modified: 2019年07月27日23時16分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC135 ABC_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: