seriruの技術屋ブログ

競技プログラミングやゲーム開発など技術に関することを発信します

AtCoder Beginner Contest 119 A B

AtCoder Beginner Contest 119に参加しました。

A Still TBD

問題

atcoder.jp

問題概要

西暦2019年の実在する日にちを、"yy/mm/dd" の形で文字列  S として与えられる。
 S が西暦  2019 4 30 日以前なら  Heisei 、その日以降なら  TBD と出力せよ。

考察

C++では文字列は辞書順で比較することができます。

したがって、 S と "2019/4/30" を不等号で比較すれば良いです。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
  string s;
  cin >> s;
  if (s > "2019/04/30") {
    cout << "TBD" << endl;
  } else {
    cout << "Heisei" << endl;
  }
}

B Digital Gifts

問題

atcoder.jp

問題概要

 N 個のお年玉が  JPY BTC の形で渡される。
 BTC = 380000.0 円としてもらったお年玉の合計を相対誤差  10^{-5} 以下で求めよ。

考察

 N 個の入力を受け取り、お年玉の単位が  BTC だった場合はもらった数に  380000 をかければ良いです。

また、今回の問題は浮動小数点を指数表記で出力 (ex:  1.82e8 のような形) しても良いのですが、std::setprecision などを使用して出力する精度を指定する必要がある問題もあるので注意が必要です。(注: C++)

提出コード

#include <bits/stdc++.h>
using namespace std;

int main() {
  int n;
  cin >> n;
  double ans = 0;
  string u;
  double x;

  rep(i,n) {
    cin >> x >> u;
    if (u == "JPY") {
      ans += x;
    } else {
      ans += x * 380000.0;
    }
  }

  cout << ans << endl;
}