Entries

スポンサーサイト (この記事を編集する[管理者用])

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/1043-767e8eee
この記事にトラックバックする(FC2ブログユーザー)

Beta Round #3 A問題 - Shortest path of the king (この記事を編集する[管理者用])

Source

Codeforces Beta Round #3 A問題
Problem description
Beta Round #3の自分の参加記録

問題概要

8*8のチェス盤の初期位置と目的位置が与えられるので,kingが移動する最小手数と移動方法の1つを求める問題.

解法

毎ターン目的地の方向に向かっていけば良い.
かかるターン数はmax(x座標のずれ, y座標のずれ).

C言語のスパゲッティなコード

実際に本番に送信したコードから無駄なinclude, defineを除いたものです.

#include<stdio.h>

int ab(int x){if(x<0) return -x; return x;}

int main(){
  int i,j,k,l,m,n;
  char a[3],b[3];

  scanf("%s%s",a,b);

  i=ab(a[0]-b[0]); j=ab(a[1]-b[1]);
  if(i<j) i=j;
  printf("%d\n",i);

  while(a[0]!=b[0] || a[1]!=b[1]){
    if(a[0]>b[0]) putchar('L'), a[0]--;
    if(a[0]<b[0]) putchar('R'), a[0]++;
    if(a[1]>b[1]) putchar('D'), a[1]--;
    if(a[1]<b[1]) putchar('U'), a[1]++;
    puts("");
  }

  return 0;
}

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/1043-767e8eee
この記事にトラックバックする(FC2ブログユーザー)

Appendix

Recent Articles

ブログ内検索

Ads


(プライバシーポリシー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。