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?

ABC057 の問題を解いてみました

Last updated at Posted at 2024-01-04

A問題

問題を読み解くと、$A + B$ がコンテスト開催時間になるとわかります。
基本的には、それを出力すればよいですが、開催が翌日になることがあるので、$A + B$ を 24 で割ったあまりを出力します。

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

int main(void){
  int a, b;
  cin >> a >> b;
  
  cout << (a + b) % 24 << endl;
}

B問題

各学生にとって、どのチェックポイントが一番近いかを全探索します。

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

int main(void){
  int n, m;
  cin >> n >> m;
  int a[n], b[n], c[m], d[m];
  for(int i = 0; i < n; i++) cin >> a[i] >> b[i];
  for(int i = 0; i < m; i++) cin >> c[i] >> d[i];
  
  int ans;
  for(int i = 0; i < n; i++){ //全生徒について試す
    int point = 1e9; //最短距離を記録する
    
    for(int j = 0; j < m; j++){ //全チェックポイントについて試す
      
      //マンハッタン距離を求める
      int dis = abs(a[i] - c[j]) + abs(b[i] - d[j]);
      if(dis < point){ //距離が一番近いなら
        point = dis; //距離を更新する
        ans = j + 1; //チェックポイントの番号を記録する
      }
    }
    cout << ans << endl;
  }
}

C問題

まず、$A, B$ の桁数を求めるには、$A, B$ を文字列にして、その長さを確かめればよいです。
そして、$A, B$ の桁数の大きい方が $F(A, B)$ になります。
$N = A \times B = B \times A$ が成り立つので、$1 \leqq A \leqq \sqrt N$ を満たす $A$ を全て試して、最小の $F(A, B)$ を出力すればよいです。

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

int digit(int x){ //桁数を返す関数
  return (int)to_string(x).size();
}

int main(void){
  long long n;
  cin >> n;
  
  int ans = 1e9;
  for(int i = 1; i <= sqrt(n); i++){
    if(n % i == 0){
      int a = digit(i), b = digit(n / i);
      // A, B の桁数を求める
      int f = max(a, b);
      //
      ans = min(ans, f);
    }
  }
  cout << ans << endl;
}

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?