Olimpiade Sains Provinsi (OSP) 2015 - Komputer

1

Raja Putih akan memberikan penghargaan kepada 10 pion. Raja akan memberikan 3 jenis penghargaan, yaitu:  

a. Penghargaan Pion Jujur (PPJ) kepada 6 pion paling jujur.

b. Penghargaan Pion Kuat (PPK) kepada 8 pion paling kuat.

c. Penghargaan Pion Lucu (PPL) kepada 8 pion paling lucu.

Setiap pion dapat menerima lebih dari 1 penghargaan. Pion yang mendapatkan ketiga perhargaan sekaligus akan dinaikkan pangkatnya menjadi benteng. Berapa jumlah minimal pion yang pasti naik pangkat?

2

Kuda-kuda milik raja hitam sedang makan di suatu papan catur berukuran 4 x 4 petak. Semua kuda milik raja hitam adalah kuda perang yang akan menyerang apapun yang terletak pada daerah serang mereka. Jika kuda terletak pada posisi (x,y), maka daerah serang kuda tersebut adalah petak pada posisi (x+1,y+2),(x-1,y+2),(x+1,y-2),(x-1,y-2),(x+2,y+1),(x-2,y+1),(x+2,y-1), dan (x-2,y-1). Dengan catatan posisi-posisi tersebut berada dalam area papan catur. Para pengawal kerajaan telah mengatur letak tiap kuda sehingga tidak ada satupun kuda yang akan saling menyerang. Berapa jumlah maksimal kuda milik raja hitam?  

3

Harga Bahan Bakar Minyak (BBM) di sebuah negara naik sebesar 25%. Beberapa hari kemudian, harga BBM di negara tersebut turun sebesar 20%.   Apakah harga BBM setelah mengalami penurunan menjadi LEBIH MURAH, LEBIH MAHAL, atau SAMA DENGAN harga BBM sebelum mengalami kenaikan?

4

Sebelas tim sepak bola akan bertanding satu dengan yang lain dalam sebuah turnamen. Setiap tim akan bertanding dengan sepuluh tim yang lain sebanyak tepat satu kali. Tim yang menang dalam sebuah pertandingan akan mendapatkan 5 poin, sedangkan yang kalah mendapatkan 0 poin. Bila seri maka kedua tim akan mendapatkan 1 buah poin. Berapa banyak total point yang mungkin terjadi jika jumlah dari poin yang didapatkan oleh semua tim tersebut antara 100 sampai dengan 210?  

5

Di sebuah desa, tinggallah seorang gadis cantik yang hobi melompat-lompat. Di suatu pagi yang cerah, sang gadis akan berangkat ke sekolah dengan berjalan atau melompat-lompat.

Gambar di atas adalah peta desa dimana sang gadis cantik tinggal. Peta dinyatakan dalam petak? petak 6x6. Sekolah sang gadis terletak di petak [6,6], sedangkan rumah tempat tinggal sang gadis terletak di petak [1,1]. Dari suatu petak, sang gadis boleh memilih antara berjalan sejauh 1 petak ke arah utara atau timur, atau melompat sejauh 2 petak ke arah utara atau timur. Ada berapa cara agar sang gadis bisa sampai ke sekolah dengan selamat tanpa terjebur ke sungai?

6

Pada suatu hari, Dedew dan Thony sedang bermain sebuah game bilangan. Kedua pemain bergantian mengucapkan bilangan asli secara berurutan (dari 1), hingga permainan berhenti. Jika sebuah bilangan mengandung angka 7, atau merupakan kelipatan 7, maka pemain harus mengucapkan "Up!", bukan bilangannya. Game ini berhenti jika ada pemain yang melakukan kesalahan (mengucapkan "Up!" pada saat yang kurang tepat, atau tidak mengucapkan "Up!" pada saat bilangan itu mengandung angka 7 atau merupakan kelipatan 7). Jika game ini berhenti di bilangan 178, berapa banyak jumlah "Up!" yang telah diucapkan oleh kedua pemain?  

7

Ada 4 buah tanaman yang harus dipanen. Tanaman ke-i memiliki tinggi Ti cm pada hari pertama ketika akan dipanen dan jika tidak dipanen akan menyusut sebanyak Si cm setiap malam hari. Diketahui bahwa:

Tanaman ke-i Ti Si
1 30 3
2 20 4
3 10 2
4 25 5
 

 

Artinya, apabila tanaman ke-1 dipanen pada hari ke-1, tingginya adalah 30 cm. Apabila dipanen pada hari ke-2, tingginya adalah 27 cm. Apabila dipanen pada hari ke-3, tingginya adalah 24 cm, dan seterusnya. Jika dalam 1 hari hanya dapat memanen habis 1 tanaman saja, berapakah JUMLAH tinggi keempat tanaman hasil panen MAKSIMAL yang mungkin didapat?

8

Bebek-bebek pak Dengklek membentuk pertemanan seperti diilustrasikan pada gambar di bawah ini, dengan bulatan hitam adalah bebek dan garis adalah hubungan pertemanan antara dua bebek

Pak Dengklek biasa memberikan berita ke salah satu bebek, dan berita tersebut menyebar melalui hubungan pertemanan. Ada sejumlah bebek yang jika keluar dari hubungan pertemanan mengakibatkan terputusnya komunikasi. Contoh: Jika A meninggalkan pertemanan, akan mengakibatkan terputusnya komunikasi sejumlah bebek. Untuk menghindari hal tersebut, pak Dengklek meminta para bebek untuk menambah hubungan pertemanan. Berapa minimal hubungan pertemanan baru yang perlu dibuat supaya hubungan komunikasi tetap terjaga ketika salah satu bebek meninggalkan kelompok tersebut. 

Deskripsi untuk soal nomor 9 - 10

Raja putih baru saja mendapatkan jenis pasukan baru yaitu 150 ekor Naga. Naga menyerang dengan cara menyemburkan api atau menyemburkan es. Agar dapat menyemburkan api, sebelumnya naga harus diberi makan dengan daging. Jika naga diberi makan sayuran maka Naga akan menyemburkan es. Ada 3 jenis daging yang dapat dimakan oleh naga yaitu; Daging sapi, ayam, bebek. Diketahui ada 60 naga yang menyukai daging sapi, 72 naga yang menyukai daging ayam, 80 naga yang menyukai daging bebek, dan 7 naga vegetarian yang tidak makan daging (menyemburkan es).

9

Jika ada 55 naga yang menyukai daging sapi dan bebek, berapa jumlah naga yang hanya menyukai daging ayam?

10

Jika ternyata ada 9 naga yang yang tidak makan daging maupun sayuran (mereka hanya minum), dan ada 40 naga yang menyukai daging ayam dan bebek, berapa jumlah naga yang menyukai daging sapi dan (bebek atau ayam)?  

11

Pak Dengklek sedang membagi kertas ujian di kelasnya. Tumpukan kertas sebanding banyaknya lembar kertas ujian. Karena malas, Pak Dengklek langsung memberikan sebuah tumpukan kertas ujian ke seorang murid. Kemudia Pak Dengklek menyuruh murid itu untuk mencari kertas ujiannya sendiri, dan membagi tumpukan kertas ujian itu menjadi dua tumpukan yang sama tinggi seusai murid itu mendapatkan kertas ujiannya. Kedua tumpukan itu diberikan ke dua murid lain yang belum mendapatkan kertas ujiannya. Jika tinggi tumpukan adalah x, maka seorang murid perlu x detik untuk mendapatkan kertas ujiannya dari tumpukan tersebut. Lalu, seorang murid perlu 10 detik untuk menyerahkan dua tumpukan ke dua murid lain. Jika Dedew, seorang murid Pak Dengklek, menerima hanya 1 lembar kertas dan dia telah menunggu selama 50  detik, berapa banyak murid Pak Dengklek?  

12

Pak Dengklek, Bu Dengklek, Ammar dan Rakina ingin melewati sebuah jembatan. Karena sudah berumur 1000 tahun, jembatan tersebut hanya bisa dilewati oleh maksimal 2 orang. Karena hari sudah malam, maka untuk dapat melewati jembatan tersebut diperlukan senter sebagai sumber penerangan. Namun, mereka hanya membawa sebuah senter. Diketahui untuk melewati jembatan tersebut Pak Dengklek membutuhkan waktu selama 10 detik, Bu Dengklek membutuhkan waktu 5 detik, Ammar membutuhkan waktu 2 detik dan Rakina membutuhkan waktu selama 1 detik. Apabila terdapat 2 orang yang melewati jembatan disaat yang bersamaan, maka orang yang lebih cepat akan menyesuaikan kecepatannya dengan orang yang lebih lambat. Waktu minimal yang dibutuhkan untuk mereka melewati jembatan tersebut adalah ….. detik.

13

Ada berapa banyak angka diantara 0-80 yang memiliki tepat 4 angka 1 dalam representasi binernya?  

Deskripsi untuk soal nomor 14 - 15

Vin membawa sekarung tromino berbentuk L dan sebuah monomino. Ia lalu menantang Van untuk menempatkan tromino dan monomino tersebut sehingga papan itu tertutupi penuh. Sebelum Van mulai, Vin ingin tahu berapa banyak petak di papan tersebut yang mungkin akan ditutupi oleh monomino? Jika papan Vin berukuran 2x2, ada 4 petak berbeda yang mungkin ditutupi oleh monomino:

Yang diwarnai abu adalah sebuah tromino berbentuk L, dan yang diwarnai putih adalah sebuah monomino.

14

Petak Vin berukuran 5x5, Van akan menempatkan 8 tromino dan sebuah monomino, berapa banyak petak berbeda di papan tersebut yang mungkin ditutupi oleh monomino?

15

Petak Vin berukuran 8x8, Van akan menempatkan 21 tromino dan sebuah monomino, berapa banyak petak berbeda di papan tersebut yang mungkin ditutupi oleh monomino?

Deskripsi untuk soal nomor 16 - 17

Ammar sangat gemar makan. Sebuah restaurant menyediakan 3 jenis makanan yaitu ayam, kangkung dan sambal. Tidak hanya gemar makan, Ammar juga gemar bermain teka-teki. Ammar membuat beberapa peraturan untuk dirinya sendiri saat makan.

  • Sambal hanya boleh dimakan setelah memakan ayam atau kangkung.
  • Kangkung hanya boleh dimakan setelah memakan ayam.
  • Ayam boleh dimakan setelah memakan ayam atau kangkung atau sambal.
  • Untuk mengawali rangkaian makannya, Ammar harus memakan ayam.
16

Jika Ammar memesan 3 ayam dan 2 kangkung, banyaknya kemungkinan Ammar menghabiskan makanannya adalah ....

17

Jika Ammar memesan 3 ayam, 2 kangkung dan 2 sambal, banyaknya kemungkinan Ammar menghabiskan makanannya adalah ....

18

Pak Dengklek akan membagikan 20 bingkisan kepada 4 orang temannya, Van, Vin, Va, Vi, tentunya masing-masing setidaknya mendapat 1 bingkisan, uniknya Pak Dengklek tidak ingin ada sebuah bilangan bulat x (x > 1), yang dapat habis membagi banyak bingkisan yang diterima Van, Vin, Va, dan Vi. Berapa banyak cara Pak Denglek dapat membagi bingkisannya?

19

Pak Dengklek sedang menyusun ubin untuk menutupi lantai berukuran 4x7 dengan ubin berukuran 1x2. Ubin boleh disusun vertikal atau horisontal tanpa memotongnya. Ada berapa banyak cara untuk memenuhi lantai tersebut?

20

Pada kesempatan kali ini, Astrid dan Bonita (nama samaran, bukan nama asli) sedang bosan dan menciptakan sebuah permainan baru. Game nya sangat simple. Mula-mula disediakan N buah batu, lalu pemain secara bergantian mengambil beberapa batu. Pemain yang kehabisan langkah (kehabisan batu) dinyatakan kalah. Namun kali ini aturan permainan ini berbeda. Dalam 1 giliran, pemain hanya boleh mengambil sejumlah tepat 3, 5, 7, atau 9 batu. Karena Astrid lebih tua dari Bonita, Astrid mendapat kesempatan giliran pertama. Apabila mereka berdua mampu bermain secara optimal, berapa banyaknya batu (N) dengan N lebih besar dari 1000, agar Bonita menang di dalam permainan tersebut?  

21

Diberikan deret bilangan:

2    5    4    15    8    45    X    Y

Berapakah nilai X dan nilai Y?

22

Temukan suatu bilangan 10 digit sehingga:

  • Digit pertama adalah banyaknya angka 0 pada bilangan tersebut
  • Digit kedua adalah banyaknya angka 1 pada bilangan tersebut
  • Digit ketiga adalah banyaknya angka 2 pada bilangan tersebut
  • Digit kesepuluh adalah banyaknya angka 9 pada bilangan tersebut

Deskripsi untuk soal nomor 23 - 24

Pada suatu hari, bebek-bebek Pak Dengklek yang bernama Kwak, Kwik, Kwek, dan Kwok ingin mengikuti lomba lari. Karena sudah bekerja keras, Pak Dengklek ingin menghadiahkan sepasang sepatu baru untuk masing-masing bebek-bebeknya. Akan tetapi, masing-masing bebek memiliki warna kesukaan yang berbeda-beda. Berikut ini adalah beberapa informasi terakhir yang diingat Pak Dengklek:

  • Tinggi bebek-bebek Pak Dengklek adalah 30 cm, 31 cm, 32 cm, dan 33 cm (sayangnya Pak Dengklek lupa urutan tinggi untuk Kwak, Kwik, Kwek, dan Kwok)
  • Warna-warna yang disukai Pak Dengklek adalah merah, putih, hijau, hitam (lagi-lagi Pak Dengklek lupa urutan warna kesukaan untuk Kwak, Kwik, Kwek, dan Kwok)
  • Tinggi Kwek yang menyukai warna hijau adalah 32 cm, yang juga lebih tinggi dari Kwik
  • Bebek yang menyukai warna merah lebih tinggi dari Kwak
  • Bebek yang menyukai warna hitam memiliki tinggi  31 cm
  • Kwik tidak menyukai warna putih
  • Kwok menyukai warna merah
23

Bagaimana urutan tinggi bebek-bebek Pak Dengklek diurutkan dari yang paling pendek?

24

Siapa bebek yang menyukai warna putih?

25

Seorang peternak memiliki sejumlah binatang yang terdiri atas kelinci, kuda, dan sapi. Pernyataan yang diketahui adalah:

  • Semua binatang peternak tersebut, kecuali 4 ekor, adalah kelinci
  • Semua binatang peternak tersebut, kecuali 4 ekor, adalah kuda
  • Semua binatang peternak tersebut, kecuali 4 ekor, adalah sapi

Berapa banyak binatang yang dimiliki peternak tersebut?

26

Bebek Pak Dengklek berulang tahun. Pak Dengklek memberi kue ulang tahun berbentuk tanda tambah:

Berapa maksimal potongan kue yang dapat peroleh Pak Dengklek dengan melakukan 2x pemotongan. Satu pemotongan harus berupa garis lurus, dan tidak boleh memindahkan posisi kue? 

27

Diberikan dua buah angka A dan B dengan ketentuan bilangan A dan B merupakan bilangan real. Tulislah rumusan yang menghasilkan nilai terbesar dari dua bilangan tersebut dengan operator bilangan biasa (+, -, ×, ÷) dan fungsi ABS (nilai absolut 2 buah nilai real) tanpa memakai operator perbandingan (<, >, =, ≤, ≥, ≠). 

28

Di sebuah perumahan yang rumah-rumahnya tersusun berjajar, terdapat 8 rumah. Beberapa keterangan yang terdapat di dalam perumahan tersebut yakni:

  • Rumah D dan E terletak tepat bersebelahan
  • Di antara Rumah A dan F terdapat 3 rumah lainnya.
  • Rumah H berada di sebelah barat Rumah G
  • Rumah G berjarak 5 rumah dari Rumah C
  • Rumah B merupakan rumah kedua paling barat.
  • Rumah A tepat terletak di tengah-tengah Rumah E dan H.

Sebutkan urutan rumah tersebut dari rumah yang letaknya paling barat hingga paling timur.  

29

Athin dan Ayos sedang bermain tebak-tebakan bilangan dan terjadilah percakapan berikut:

Athin : "Aku memikirkan sebuah bilangan bulat antara 1 sampai dengan 10 "
Ayos  : "Apakah bilangan tersebut bilangan prima?"
Athin : "...." (Athin menjawab dengan ya / tidak, tapi hanya Ayos yang mendengar ucapannya)
Ayos  : "Apakah bilangan tersebut bilangan ganjil?"
Athin : "...." (Athin menjawab dengan ya / tidak, tapi hanya Ayos yang mendengar ucapannya)
Ayos  : "Oh, dengan ini barulah aku tahu bilangan yang kamu tebak adalah X"
Athin : Ya Benar, X adalah ....... {tuliskan jawaban dalam bentuk angka saja}

Catatan: 1 bukan bilangan prima.  

30

Athin dan Ayos sedang bermain tebak-tebakan bilangan dan terjadilah percakapan berikut:

Athin : "Aku memikirkan sebuah bilangan bulat antara 1 sampai dengan 10"
Ayos  : "Apakah bilangan tersebut bilangan prima?"
Athin : "...." (Athin menjawab dengan ya / tidak, tapi hanya Ayos yang mendengar ucapannya)
Ayos  : "Apakah bilangan tersebut bilangan ganjil?"
Athin : "...." (Athin menjawab dengan ya / tidak, tapi hanya Ayos yang mendengar ucapannya)
Ayos  : "Apakah bilangan tersebut huruf depannya S?"
Athin : "...." (Athin menjawab dengan ya / tidak, tapi hanya Ayos yang mendengar ucapannya)
Ayos  : "Oh, dengan ini barulah aku tahu bilangan yang kamu tebak adalah Y"
Athin : Ya, bilangan Y adalah ....... {tuliskan jawaban dalam bentuk angka saja}   

Catatan : 1 bukan bilangan prima.  

31

Tuliskan output dari program pseudo code di bawah ini jika input x = 9. 

function jarak(km:integer): integer;
begin
     if (km <= 2) then
         jarak := 1
     else
         jarak := jarak(km-1) + jarak(km-2);
end;

var
i, x :integer;

begin
     readln(x);
     for i := x downto 1 do
         write(jarak(i), ' ');
end.
32

Tuliskan output dari program pseudo code di bawah ini jika input b = 4 dan k = 27. 

var
    b, k : int64;
    s : int64;
    i : byte;
begin
    readln(b);
    readln(k);
    k := k - b;
    s := 1;
    for i := 1 to 61 do
        s := s * 2;
    while k > 0 do
    begin
        if (k >= s) then
        begin
            write(s, ’ ‘);
            k := k mod s;
        end;
        s := s div 2;
    end;
end.
33

Tuliskan output dari program pseudo code di bawah ini jika input n = 11 dan k = 3.

var
    n, k, i : byte;
begin
    readln(n, k);
    for i := 1 to n do
    begin
        if i mod (k+1) = 0 then
            write('* ')
        else
            write(i, ' ');
    end;
    writeln(‘#’);
end.
34

Tuliskan output dari program pseudo code di bawah ini. 

var
    ss : string;
    i,j,sz : integer;
    boo : boolean;
    tmp : char;

begin
    ss := 'TOKITOKI';
    i := 1; sz := length(ss); {length adalah fungsi untuk  
                                 mengembalikan panjang string}
    while(i<=sz) do
    begin
        j:=i;
        while ( (ss[j] <> ss[j+1]) and (j < sz) ) do
        begin
            tmp := ss[j]; 
            ss[j]:= ss[j+1]; 
            ss[j+1]:= tmp;
            j := j + 1;
        end;
        i := i + 1;
    end;
    writeln(ss);
end.    
35

Tuliskan output dari program pseudo code di bawah ini jika input x = 20 dan y = 14. 

readln(x,y);
z := 0;

while (x > y) do begin
    z := z + x;
    z := z - y;

    x := x - 2;
    y := y - 1;
end;

writeln(z);  
36

Tuliskan output dari program pseudo code di bawah ini. 

begin
    lala:=10;
    x:=2;
    haha:=0;
    for i:=1 to lala do
        begin
            j:=i;
            lili:=true;
            while (j>1) do
                begin
                    if (j mod x = 1) then lili:=false;
                    j:=j div x;
                end;
            if (lili=true) then haha:=haha+i;
            else haha:=haha+1;
        end;
    writeln(haha);    
end.

Deskripsi untuk soal nomor 37 - 38

var
    a : array [1..100000] of longint;
    i, j, n : longint;

begin
     readln(n);
     for i := 1 to n do
         a[i] := 0;
     for i := 2 to n do
     begin
          if (a[i] = 0) then
          begin
               j := i;
               while (j <= n) do
               begin
                    a[j] := a[j] + 1;
                    j := j + i;
               end;
          end;
     end;
end.   
37

Apabila n = 16, berapa nilai dari elemen array a[9]?

38

Apabila n = 300, berapa nilai i terkecil dimana 1 <= i <= n dan a[i] >= 11?

Deskripsi untuk soal nomor 39 - 40

const satu=1;
var lala, x, haha, i:integer;
begin
    lala:=10;
    x:=10;
    haha:=0;
    for i:=0 to x do
    begin    
        if ((lala & (satu shl i)) <> 0) then
            haha:=haha+1;
    end;
{ A shl B adalah operator menggeser bit-bit A ke kiri sejumlah B kali}
    writeln(haha);
end.   
39

Tuliskan output dari program pseudo code di atas.

40

Apabila baris keempat dari kode di atas (“lala:=10;”) diubah menjadi "lala:=2000;" dan baris kelima diubah menjadi "x:=30;", maka output dari program pseudo code di atas adalah .....

41

Tuliskan output dari program pseudo code di bawah ini. 

var
      a: array[0..15] of integer = (1, 0, 2, 0, 4, 0, 3, 2, 6, 2, 5, 3, 7, 3, 6, 5);
      b: array[0..7] of integer = (4, 1, 8, 12, 5, 14, 15, 13);
      c: array[0..15] of integer = (-1, -1, 0, -1, 2, -1, 3, -1, 6, -1, 7, -1, 10, -1, 11, 9);
      d: array[0..7] of integer = (-1, -1, -1, -1, -1, -1, -1, -1);

procedure kemanamana(y, z: integer);
var
      e: integer;
begin
      e := b[y];
      d[y] := z;
      while(e > -1) do begin
            if(d[a[e]] = -1) then
                  kemanamana(a[e], z + 1);
            e := c[e];
      end;
end;

begin
      kemanamana(0, 0);
      writeln(d[7]);
end.
42

Penjumlahan dari tiga angka terakhir yang tercetak oleh program pseudo code di bawah adalah ….. 

var
      aku, kamu, dia, saya, anda : integer;
begin
      aku:=2; kamu:=10;
      for saya:=aku to kamu do
      begin
            dia:=saya;
            for anda := 1 to saya-1 do
            begin
                  writeln(dia);
                  dia := dia * (saya-anda) div (anda+1);
            end;
      end;
end. 

Deskripsi untuk soal nomor 43 - 44

function D(X,Y : integer) : integer;
begin
      if (Y = 0) then D := 1
      else D := Y+1;
end;

function C(X,Y : integer) : integer;
begin
      if (Y = 0) then C := X
      else C := D(X,C(X,Y-1));
end;

function B(X,Y : integer) : integer;
begin
      if (Y = 0) then B := 0
      else B := C(X,B(X,Y-1));
end;

function A(X,Y : integer) : integer;
begin
      if (Y = 0) then A := 1
      else A := B(X,A(X,Y-1));
end;

begin
      writeln(A(4,2));
end.   
43

Tuliskan output dari program pseudo code di atas. 

44

Jika kode program "writeln(A(4,2));" diganti dengan "writeln(A(3,6));", Tuliskan output dari program pseudo code tersebut.

45

Tuliskan output dari program pseudo code di bawah ini. 

var
      apaini: array[1..4, 1..10] of char =
            (('T', 'I', 'M', ' ', 'O', 'L', 'I', 'M', 'P', 'I'),
            ('A', 'D', 'E', ' ', 'K', 'E', 'G', 'A', 'N', 'T'),
            ('E', 'N', 'G', 'A', 'N', ' ', 'I', 'N', 'D', 'O'),
            ('N', 'E', 'S', 'I', 'A', ' ', 'Y', 'E', 'A', '!'));
      hah: array[1..4] of integer = (1, 0, -1, 0);
      huh: array[1..4] of integer = (0, 1, 0, -1);
      hoh: array[1..4, 1..10] of boolean;
      hihi: integer;

function heh(b, y: integer): boolean;
begin
      heh:=((1 <= b) and (b <= 4) and (1 <= y) and (y <= 10));
end;

procedure iniapalagi(a, z: integer);
var
      i: integer;
      b, y: integer;
begin
     hihi := hihi + 1;
     hoh[a][z] := true;
     for i := 1 to 4 do
     begin
         b := a + hah[i];
         y := z + huh[i];
         if (heh(b,y)) and (not hoh[b][y]) and (apaini[b][y]<>' ')
            and (apaini[b][y]<>'E') and (apaini[b][y]<>'T') then
                  iniapalagi(b, y);
     end;
end;

begin
    iniapalagi(1, 3);
    writeln(hihi);
end.

Deskripsi untuk soal nomor 46 - 47

var
      mola : array[1..10] of integer = (5,9,4,3,10,1,6,2,7,8);
      pos : array[1..10] of integer;
      dah : array[1..10] of boolean;

function molamola(): integer;
var
      i, tempe, hihi, skr:integer;
      m:integer;
begin
      m:=0;
      for i:=1 to 10 do
      begin
            pos[mola[i]] := i;
            dah[i] := false;
      end;
      for i:=1 to 10 do
      begin
            if not dah[i] then
            begin
                  skr := i;
                  repeat
                        dah[skr] := true;
                        hihi := pos[skr];
            if not dah[hihi] then
                        begin
                              tempe := mola[skr];
                              mola[skr] := mola[hihi];
                              mola[hihi] := tempe;
                        end;
                        skr := hihi;
                         m:=m+1;
                  until dah[skr];
                   m:=m-1;
            end;
      end;
     molamola:=m;
end;    
46

Jika pada program utama pseudo code di atas terdapat statement untuk mencetak hasil dari molamola() maka output yang ditampilkan adalah …..

47

Berapa nilai mola[5] pada akhir program ……

48

Berikut ini adalah pseudocode dari operasi penukaran nilai dua variabel yang berbeda:

//nilai variabel ‘a’ dan ‘b’ sudah di set
temp := a;
a := b;
b := temp;
//nilai variabel ‘a’ dan ‘b’ telah ditukar

Nah sekarang kalian harus membuat sebuah pseudocode operasi penukaran nilai dua variabel hanya dengan dua variabel saja.

*Hint : artinya kalian hanya boleh memakai variabel ‘a’ dan ‘b’ tanpa tambahan variabel lain seperti ‘temp’

//nilai variabel ‘a’ dan ‘b’ sudah di set
...
//nilai variabel ‘a’ dan ‘b’ telah ditukar
49

Buatlah pseudocode untuk permasalahan berikut ini:

Diberikan sebuah string S yang karakternya hanya berupa digit-digit angka.

  • S memiliki panjang minimal 1 karakter dan maksimal 200 karakter.
  • Apabila kita menukar-nukar posisi karakter-karakter pada S, apakah kita dapat menghasilkan sebuah string angka dengan kelipatan 25?
Contoh Masukan Contoh Keluaran Catatan
0 YA 0 adalah angka kelipatan 25
000000000 YA 000000000 adalah angka kelipatan 25
521 YA 521 bisa ditukar karakter-karakternya menjadi 125 yang merupakan angka kelipatan 25
659 TIDAK 659 bisa ditukar karakter-karakternya menjadi 569, 596, 659, 695, 956, dan 965, tetapi tidak ada yang merupakan angka kelipatan 25
10 TIDAK  
010 YA 010 menjadi 100
758 YA 758 menjadi 875
0561 YA 0561 menjadi 1650 atau 6150
1243456789 YA 123456789 salah satunya menjadi 987614325
123406789 TIDAK  

 

50

Pak Dengklek memiliki sebuah array berisi N bilangan bulat non-negatif. Pak Dengklek pun menantang Anda untuk memilih angka-angka dari arraynya yang jika dijumlahkan habis dibagi N. Tentu saja angka di suatu index tidak boleh dipilih lebih dari sekali. Apabila hal ini mungkin, beritahu Pak Dengklek berapa banyak angka yang Anda ambil dan apa saja angka-angkanya. Apabila hal ini tidak mungkin, katakan "Tidak mungkin".

Format Input :

  • Baris pertama berisi sebuah bilangan bulat N (2 <= N <= 100000)
  • Baris kedua berisi N bilangan bulat non-negatif yang menyatakan isi array Pak Dengklek

Format Output :

  • Apabila mungkin, pada baris pertama keluarkan sebuah angka yang menyatakan banyaknya angka yang Anda ambil dari array Pak Dengklek, dan pada baris kedua keluarkan angka-angka yang Anda ambil dipisahkan oleh sebuah spasi.
  • Apabila tidak mungkin, pada baris pertama keluarkan sebuah string "Tidak mungkin" tanpa tanda petik.
Contoh Masukan Contoh Keluaran

3
4 1 2

2
4 2
3
4 4 4
3
4 4 4