Entries

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

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

コメント

コメントの投稿

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

トラックバック

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

SRM290 DIV1 EASY/DIV2 MEDIUM - BrokenClock (この記事を編集する[管理者用])

Source

TopCoder SRM290 DIV1 EASY (250pt)
TopCoder SRM290 DIV2 MEDIUM (500pt)
Problem Statement

問題概要

時計がある.
23時の次は0時,59分の次は0分.
ボタン1を押すと,時と分が1ずつ進む.
ボタン2を押すと,分だけ1進む.
指定された時間から指定された時間に変更するために押すボタンの回数の最小値を求める問題.

解法

時間がずれてる間ボタン1を押し,分が合うまでボタン2を押す.
それぞれ押す回数は数式で計算できるけど,回数は多くないので以下のコードでは1回ずつ押してシミュレーションしている.

C++によるスパゲッティなソースコード
// #includeとusing namespace std;は略

class BrokenClock {
public:
int fewestClicks(string clockTime, string currentTime) {
  int a,b, A,B;
  int res=0;

  sscanf(clockTime.c_str(),"%d:%d",&a,&b);
  sscanf(currentTime.c_str(),"%d:%d",&A,&B);

  while(a!=A){
    a = (a+1)%24;
    b = (b+1)%60;
    res++;
  }

  while(b!=B){
    b = (b+1)%60;
    res++;
  }

  return res;
}

};

コメント

コメントの投稿

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

トラックバック

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

Appendix

Recent Articles

ブログ内検索

Ads


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