Entries

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

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

コメント

コメントの投稿

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

トラックバック

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

SRM485 DIV2 EASY - MicrowaveSelling (この記事を編集する[管理者用])

Source

TopCoder SRM485 DIV2 EASY (250pt)
Problem Statement
SRM485 DIV1 自分の参加記録

問題概要

a以上b以下の整数で末尾に9ができるだけ長く続く数字を求める問題.
同じだけ続くなら,その中で最も大きい物を求める問題.
aとbは1以上1000000以下.

解法

やるだけ.
ただし,DIV2 EASYにしてはサンプルが弱く,例えば9の個数を全部数えてしまうプログラムでもサンプルが通るので注意.
(普段はDIV2 EASYは想定される間違いはサンプルで全部落ちるようになってる気がする)

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

#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

int get9(int n){
  int res=0;
  while(n%10==9) if(n%10==9) res++, n/=10;
  return res;
}

class MicrowaveSelling {
public:
int mostAttractivePrice(int minPrice, int maxPrice) {
  int i,j,k;
  int res=0, mx=0;

  REP(i,minPrice,maxPrice+1){
    k = get9(i);
    if(k>=mx) mx=k, res=i;
  }

  return res;
}

};

コメント

コメントの投稿

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

トラックバック

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

Appendix

Recent Articles

ブログ内検索

Ads


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