Update README.md

This commit is contained in:
202410715031 MUHAMAD ALFARIZKY 2025-05-10 00:18:29 +07:00
parent 096135cf0c
commit 522f0c79cc

View File

@ -1,2 +1,87 @@
# Bersalaman # Bersalaman
# Strategi Penyelesaian Soal Bersalaman
## Deskripsi Masalah
Pada soal ini, diberikan sejumlah orang dalam sebuah pertemuan keluarga. Beberapa orang hadir bersama pasangannya, sementara yang lain datang sendiri. Setiap orang akan saling bersalaman, kecuali dengan pasangannya sendiri. Tugasnya adalah menghitung total jumlah salam yang terjadi dalam pertemuan ini.
## Format Input
Setiap baris input berisi dua angka yang dipisahkan oleh satu spasi:
* Angka pertama (`n`): Jumlah total orang yang hadir (minimal 2, maksimal 1000)
* Angka kedua (`p`): Jumlah pasangan yang hadir (setiap pasangan terdiri dari 2 orang)
Contoh Input:
```
4 0
6 2
5 4
```
## Format Output
Output adalah jumlah total salaman yang terjadi untuk setiap baris input.
Contoh Output:
```
h#1: 6
h#2: 14
h#3: 8
```
## Strategi Penyelesaian
1. **Hitung Total Kombinasi Salam**
Gunakan rumus kombinasi untuk menghitung jumlah total pasangan yang mungkin:
$C(n, 2) = \frac{n (n - 1)}{2}$
Ini akan menghitung jumlah cara memilih 2 orang dari `n` orang untuk salaman.
2. **Kurangi Salam Antar Pasangan**
Jika ada `p` pasangan, maka ada `p` pasang orang yang tidak boleh saling bersalaman. Setiap pasangan akan mengurangi 1 salaman, sehingga perlu mengurangi `p` dari hasil langkah 1.
3. **Cetak Hasil**
Format hasil sesuai dengan contoh, menggunakan nomor kasus (h#1, h#2, dst.) untuk setiap baris input.
## Pseudocode
```
function hitungSalaman(n, p):
total_salaman = (n * (n - 1)) // 2
salaman_terlarang = p
hasil = total_salaman - salaman_terlarang
return hasil
// Baca setiap baris input dan proses
for setiap baris dalam input:
n, p = pisahkan angka dalam baris
hasil = hitungSalaman(n, p)
cetak("h#<nomor>: <hasil>")
```
## Kompleksitas Waktu
Algoritma ini memiliki kompleksitas O(1) per kasus, karena operasi kombinasi dan pengurangan pasangan bersifat konstan meskipun jumlah orang (`n`) sangat besar.
## Uji Coba
Berikut beberapa contoh uji coba:
### Input
```
4 0
6 2
5 4
```
### Output yang Diharapkan
```
h#1: 6
h#2: 14
h#3: 8
```