Deskripsi Untuk Soal Nomor 35 dan 37
Perhatikan potongan kode program berikut.
int RAHASIA(vector<int> A) {
int N = A.size();
int sum = 0;
for (int i = 0; i < N; i++) {
int ctr = 0;
for (int j = 0; j < N; j++) {
if (A[j] > A[i]) {
ctr += 1;
} else if (A[j] < A[i]) {
ctr -= 1;
}
}
if (ctr == 0) {
sum += A[i];
}
}
return sum;
}
int PETAK(vector<vector<int>> B) {
int N = B.size();
vector<int> C;
for (int i = 0; i < N; i++) {
C.push_back(RAHASIA(B[i]));
}
return RAHASIA(C);
}Berapakah hasil kembalian dari pemanggilan RAHASIA({16, 5, 20, 1, 11})?
Tuliskan jawaban dalam bentuk ANGKA.
Berapakah hasil kembalian dari pemanggilan:
PETAK({16, 5, 20, 1, 11}, {2, 17, 13, 14, 19}, {15, 7, 21, 18, 9}, {25, 6, 4, 12, 22}, {23, 3, 24, 8, 10})?
Tuliskan jawaban dalam bentuk ANGKA.
Akan dipanggil:
PETAK({a, b, c, d, e}, {f, g, h, i, j}, {k, l, m, n, o}, {p, q, r, s, t}, {u, v, w, x, y})
yang mana setiap huruf 'a' hingga 'y' akan berisi 25 bilangan bulat berbeda dari rentang 1 hingga 25.
Dari seluruh kemungkinan cara pengisian setiap hurufnya, berapakah hasil kembalian paling besar dari pemanggilan tersebut?
Tuliskan jawaban dalam bentuk ANGKA.
Hitung RAHASIA({16, 5, 20, 1, 11}).
Urutkan datanya untuk memahami posisi setiap elemen:
{1,5,11,16,20}
Karena ada 5 elemen (ganjil), elemen tengah (median) adalah 11.
Mari cek dengan cara kerja fungsi:
A[i] | Lebih besar | Lebih kecil | ctr |
|---|---|---|---|
16 | 1 | 3 | -2 |
5 | 3 | 1 | 2 |
20 | 0 | 4 | -4 |
1 | 4 | 0 | 4 |
11 | 2 | 2 | 0 |
12
{17,18,19,1,2} → median 17 {20,21,22,3,4} → median 20 {23,24,25,5,6} → median 23 {7,8,9,10,11} → median 9 {12,13,14,15,16} → median 14 {9,14,17,20,23}
adalah 17.
Masuk untuk menulis jawaban