0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ABC056 ARC070 の問題を解いてみました

Last updated at Posted at 2024-01-04

A問題

TopCoDeer くんが、 AtCoDeer くんの正体を言い当てているかどうかを判定します。
つまりは、a,b が等しいかどうかを判定します。

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

int main(void){
  char a, b;
  cin >> a >> b;
  
  if(a == b){ //正体を言い当てているなら
    cout << "H" << endl;
  }
  else{
    cout << "D" << endl;
  }
}

B問題

  • すでに連結の場合
  • 一つ目の長方形の左に二つ目の長方形がある場合
  • 一つ目の長方形の右に二つ目の長方形がある場合

という三つの場合について考えます。
一つ目の場合は、0 と出力すれば良いです。
二つ目の場合は、$一つ目の長方形の左端 - 二つ目の長方形の右端$ を出力すれば良いです。
3つ目の場合は、$二つ目の長方形の左端 - 一つ目の長方形の右端$ を出力すれば良いです。

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

int main(void){
  int w, a, b;
  cin >> w >> a >> b;
  int a_right = a + w, b_right = b + w;
  //a,bの右側の位置を求めておく
  
  if(b_right < a){ // もし、a より b が左にあるなら
    cout << a - b_right << endl;
  }
  else if(a_right < b){ //もし、b より a が左にあるなら
    cout << b - a_right << endl;
  }
  else{ //すでに連結なら
    cout << 0 << endl;
  }
}

C問題

時刻$t$ には、 $\displaystyle\sum^{t}_{i = 0}i$ 以下の座標には辿り着くことが可能です。(1 ~ t の総和)
(細かく調整することができる)

なので、$\displaystyle\sum^{t}_{i = 0}i$ が初めて $X$ 以上になるときの i の値を出力すれば良いです。

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

int main(void){
  int x;
  cin >> x;
  
  int a = 0;
  for(int i = 1; true; i++){
    a += i;
    if(a >= x){
      cout << i << endl;
      return 0;
    }
  }
}

D問題

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?