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?

ABC065 ARC076 の問題を解いてみました

Posted at

A問題

賞味期限を何日過ぎているのかは、$B - A$ で求められるので、それを用いて判定しましょう。

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

signed main(void){
  int x, a, b;
  cin >> x >> a >> b;
  
  int over = b - a;
  //何日過ぎたかを表す変数
  
  if(over > x){
    cout << "dangerous" << endl;
  }
  else if(over > 0){
    cout << "safe" << endl;
  }
  else{
    cout << "delicious" << endl;
  }
}

B問題

実際にボタンを押して何回か調べればよいです。

1回押したボタンをもう一度押すことになれば無限ループに陥るということがわかり、このことから答えは必ず$N$未満になるということがわかります。
なので、最大でも繰り返しを$N$回行えばいいです。

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

signed main(void){
  int n;
  cin >> n;
  int a[n + 1];
  for(int i = 1; i < n; i++){
    cin >> a[i];
  }
  int shine = 1;
  //どこが光っているかを記録する変数
  
  for(int i = 1; i < n; i++){
    shine = a[shine];
    
    if(shine == 2){
      cout << i << endl;
      //何回ボタンを押したかを出力
      return 0;
    }
  }
  cout << -1 << endl;
}

C問題

犬の方が1匹多い場合、犬猿犬猿...犬猿犬 と並べ替えられ、猿の方が1匹多い場合、猿犬猿犬...猿犬猿 と並び替えられます。
犬の数 と 猿の数 の差が2以上の場合、並べ方は0通りです。
犬の数 と 猿の数 が等しい場合、犬猿...犬猿 という並べ方と、猿犬...猿犬 という並べ方の二通りあります。

さて、ここからどのように並べ方の数を求められるかを考えます。

犬猿... か 猿犬... か決めると、
$全体の並べ方の数 = 犬の並べ方の数 \times 猿の並べ方の数$

と全体の並べ方の数は表せるので、それぞれの動物の並べ替え方を計算できればよいです。
$N$匹の動物の並び替え方は $N!$ 通りなので、全体の並び替え方は$N!M!$通りあります。

犬の数 と 猿の数 が等しい場合は、犬猿...犬猿 という並べ方と、猿犬...猿犬 という並べ方があるので、$2N!M!$通りなことに注意してください。

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

ll MOD = 1000000007;
//10^9 + 7

ll factorial(ll a){ //階乗を計算する関数
  ll b = 1;
  for(int i = 1; i <= a; i++){
    b *= i;
    b %= MOD;
  }
  return b;
}

signed main(void){
  ll n, m;
  cin >> n >> m;
  
  if(n == m){ //場合分け
    cout << 2 * factorial(n) * factorial(m) % MOD << endl;
  }
  else if(abs(n - m) == 1){
    cout << factorial(n) * factorial(m) % MOD << endl;
  }
  else{
    cout << 0 << endl;
  }
  
}
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?