[AtCoder]ABC 096A – Day of Takahashi ~ 99[C++]

プログラミング

ABC 096A – Day of Takahashi

自分の回答

#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int a, b;
  cin >> a >> b;
  int count = a - 1;

  if (a <= b) {
    count = count + 1 ;
  }

  cout << count << endl;
}

まずは、a-1をします。何をしているかというと、例えば、a=3の時、つまり3月まできた時点で、1月1日、2月2日を通過しているのは確定です。しかし、3月3日はまだきているかどうか確定ではないので、aから1を引いた数は確定となります。
それに加えて、bがa以上なら、月と日の値が同じひを通過していることになるので、countに1を足して、答えとなります。

ABC 097A – Colorful Transceivers

自分の回答

#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;

  int distans = abs(b - a) + abs(b - c);

  if ((abs(a - c) <= d) || ((abs(b - a) <= d) && (abs(b - c) <= d))) {
    cout << "Yes" << endl;
  }else {
    cout << "No" << endl;
  }
}

abs関数を使いましょう。

if文にカッコが多くてわかりづらいですが、以下の二つのどちらかを満たせばいいですね。
1. aとcが直接話せるかどうかを確認する
abs(a – c) <= d
2. bを経由して、間接的に話せるかどうかを確認する。
(abs(b – a) <= d) && (abs(b – c) <= d)

ABC 098A – Add Sub Mul

自分の回答

#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int a, b;
  cin >> a >> b;
 
  vector<int> cal{a + b, a - b, a * b};
  
  cout << *max_element(cal.begin(), cal.end()) << endl;
}

max_element関数
標準ライブラリです。
配列の最大値をイテレータを返します。なので、出力する時は*を付けます。
最小値を求めたい時はmin_elementを使います。

ABC 099A – Bichrome Cells

自分の回答

#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int n;
  cin >> n;
  
  if (n < 1000) {
    cout << "ABC" << endl;
  }else {
    cout << "ABD" << endl;
  }
}

1000未満の時は”ABC”、1000以上の時は”ABD”を出力すればいいですね。

タイトルとURLをコピーしました