ABC001 B - 視程の通報


Tags:cpatcoderjust_dodiff_experimentaldiff_brown

問題

https://atcoder.jp/contests/abc001/tasks/abc001_2

問題文

以下のルールに沿って、VV コードを出力してね。

  • 0.10.1 km 未満のときは、0000
  • そうではなく、 55 km 以下のときは、1010倍。1 桁なら先頭に 0 をつける。
  • そうではなく、 3030 km 以下のときは、5050 を足す。
  • そうではなく、 7070 km 以下の時は、 3030 を引いて 55 で割って、8080 を足す。
  • 7070 km を超えるときは、8989

制約

  • 0m1050 \le m \le 10^5 ← 単位はメートル
  • 計算すると整数になる

サンプル

I/O 1

15000
65

I/O 2

75000
89

I/O 3

200
02

考察

実装が大変だけど、 if 文でやるだけ。

コード

https://atcoder.jp/contests/abc001/submissions/26266801

int main() {
  int m;
  cin >> m;
  if (m < 100)
    cout << "00" << endl;
  else if (m < 5001)
    printf("%02d\n", m / 100);
  else if (m < 30001)
    cout << m / 1000 + 50 << endl;
  else if (m < 70001)
    cout << (m / 1000 - 30) / 5 + 80 << endl;
  else
    cout << 89 << endl;
}