ABC198 A 解答
A - Div(10)
問題文
N 個の互いに区別できないお菓子を、A君とB君で分け合います。 両者とも 1 個以上の整数個のお菓子を得るような分け方は何通りありますか?
制約
N は整数
1 ≤ N ≤ 15
考察
本問題で重要なのは
0個分けてはいけない
ことでしょう。Aさんが0個、BさんがN個という分け方は禁止されています。ですので、分け方は次の通りとなります。
1, N-1
2, N-2
...
N-1, 1
Aさんが取ることができるのは、1~N-1個のN-1通りですね。
ですので、お菓子の総数 N に対して N-1が求める答えになります。
入力から、1を引いてあげましょう。それでACです。
実装
#include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<n;++i) #define reps(i,s,n) for(int i=s;i<n;++i)
using namespace std;
using ll = long long;
using P = pair<int, int>;
int main()
{
int n;
cin >> n;
cout << n-1 << endl;
return 0;
}
あとがき
とてもシンプルな問題でした。0個が禁止されていることに注意をすれば特に問題はないのではないでしょうか。ただ本番では、こういうところに引っ掛かりやすいんですよね。落ち着いて対処しましょう。
この記事が気に入ったらサポートをしてみませんか?