Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions md/0036.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
โจทย์ข้อนี้เป็นโจทย์คณิตศาสตร์ หากมีคนทั้งหมด $N$ คน เราแบ่งเป็นสองกรณีคือ
1. $N$ เป็นจำนวนคู่ เราทราบว่าทั้งสองทีมจะต้องมีสมาชิกเท่ากัน ดังนั้นจำนวนวิธีในการจัดทีมจะเท่ากับจำนวนวิธีในการเลือกคน $\frac N2$ คนจากทั้งหมด $N$ คน เพื่อมาลงในทีมแรก และให้อีก $\frac N2$ คนที่เหลืออยู่ทีมที่สอง ดังนั้นจำนวนวิธีคือ $\binom{N}{\frac N2}$
2. $N$ เป็นจำนวนคี่ เราทราบว่าทั้งสองทีมจะต้องมีสมาชิกต่างกันหนึ่งคนพอดี ดังนั้นจะมีอีกสองกรณีย่อย นั่นคือ
- ทีมแรกมี $\frac{N-1}{2}$ คน จำนวนวิธีในการจัดทีมจะเท่ากับ $\binom{N}{\frac{N-1}2}$
- ทีมแรกมี $\frac{N+1}{2}$ คน จำนวนวิธีในการจัดทีมจะเท่ากับ $\binom{N}{\frac{N+1}2}$


แต่เราทราบว่า $\frac{N-1}{2} + \frac{N+1}{2} = N$ ดังนั้น $\binom{N}{\frac{N-1}2} = \binom{N}{\frac{N+1}2}$

เราสามารถคำนวน $\binom{n}{r}$ ด้วยสูตร $\binom{n}{r} = \frac{n!}{r!(n-r)!}$ ได้

```cpp
#include<bits/stdc++.h>
using namespace std;

int combo (int n, int r) {
long long result = 1;
for (int i = r+1; i <= n; i++) result *= i;
for (int i = 2; i <= n-r; i++) result /= i;
return result;
}

int main () {
int n; cin >> n;
long long answer = combo(n, n/2);
if (n % 2 == 1) answer *= 2;
cout << answer;
return 0;
}
```