Entries

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

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

コメント

コメントの投稿

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

トラックバック

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

Japan 2011 予選 A問題 - カードシャッフル (この記事を編集する[管理者用])

Source

Google Code Jam Japan 2011 予選 A問題

問題概要

問題分が日本語なので略.

解法

目的のカードがある場所を,最後のシャッフルから順番に辿っていく.

Cによるスパゲッティなソースコード
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

int main(){
  int i,j,k,l;
  int size,count=0;

  int M, C, W;
  int A[200], B[200];

  scanf("%d",&size);
  while(size--){
    scanf("%d%d%d",&M,&C,&W);
    rep(i,C) scanf("%d%d",A+i,B+i);

    rep(i,C) A[i]--;
    W--;

    for(i=C-1;i>=0;i--){
      if(W < B[i]){ W += A[i]; continue; }
      if(W < A[i]+B[i]){ W -= B[i]; continue; }
    }

    printf("Case #%d: %d\n",++count,W+1);
  }


  return 0;
}

コメント

コメントの投稿

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

トラックバック

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

Appendix

Recent Articles

ブログ内検索

Ads


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