Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah...

40
Algoritma + Pemrograman Pascal March 22, 2013 Algoritma + Pemrograman Pascal

Transcript of Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah...

Page 1: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Algoritma + Pemrograman Pascal

March 22, 2013

Algoritma + Pemrograman Pascal

Page 2: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Berat Bebek

Soal (OSN IX)

Setiap bulan, Posyanbedu (Pos Pelayanan Bebek Terpadu) unit PakDengklek mengadakan penimbangan badan rutin untuk mengetahuikondisi kesehatan umum bebek-bebek di suatu kandang.

Bebek-bebek akan dibariskan berdasarkan lokasi kandangnya danditimbang satu per satu.Jumlah bebek dan kandang yang sangat banyak membuat PakDengklek kebingungan mendata berat teringan dan terberat bebekdari suatu lokasi kandang. Bantulah Pak Dengklek mendatabebek-bebeknya tersebut

Algoritma + Pemrograman Pascal

Page 3: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Berat Bebek

Soal (OSN IX)

Setiap bulan, Posyanbedu (Pos Pelayanan Bebek Terpadu) unit PakDengklek mengadakan penimbangan badan rutin untuk mengetahuikondisi kesehatan umum bebek-bebek di suatu kandang.Bebek-bebek akan dibariskan berdasarkan lokasi kandangnya danditimbang satu per satu.

Jumlah bebek dan kandang yang sangat banyak membuat PakDengklek kebingungan mendata berat teringan dan terberat bebekdari suatu lokasi kandang. Bantulah Pak Dengklek mendatabebek-bebeknya tersebut

Algoritma + Pemrograman Pascal

Page 4: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Berat Bebek

Soal (OSN IX)

Setiap bulan, Posyanbedu (Pos Pelayanan Bebek Terpadu) unit PakDengklek mengadakan penimbangan badan rutin untuk mengetahuikondisi kesehatan umum bebek-bebek di suatu kandang.Bebek-bebek akan dibariskan berdasarkan lokasi kandangnya danditimbang satu per satu.Jumlah bebek dan kandang yang sangat banyak membuat PakDengklek kebingungan mendata berat teringan dan terberat bebekdari suatu lokasi kandang. Bantulah Pak Dengklek mendatabebek-bebeknya tersebut

Algoritma + Pemrograman Pascal

Page 5: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Format Masukan dan KeluaranMasukan:

Masukan terdiri dari beberapa baris,masing-masing berisi sebuah bilanganbulat Ai (1≤ Ai ≤ 10000) yangmenyatakan berat bebek. Data bebek darisetiap kandang yang berbeda akandipisahkan oleh sebuah bilangan 0.

Keluaran:Untuk setiap kandang bebek, keluarkanlahsebuah baris berisi dua buah bilanganbulat yakni data berat bebek teringan danbebek terberat dari semua bebek dikandang tersebut dipisahkan oleh sebuahspasi. Masukan dijamin tidak lebih dari1000000 baris.

Contoh

Algoritma + Pemrograman Pascal

Page 6: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.

Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 7: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.

Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 8: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.

Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 9: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.

Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 10: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).

Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 11: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).

Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 12: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.

Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 13: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Keluarga Bebek (Soal OSN IX)

Saat memulai usaha peternakan bebeknya dulu, Pak Dengklek hanyamemiliki beberapa ekor bebek saja.Sekarang, bebeknya telah beranak pinak hingga ratusan, bahkanribuan.Sampai-sampai mereka sudah lupa dengan leluhur dan keluargaaslinya.Pak Dengklek berinisiatif membantu bebek-bebeknya untukmenemukan saudara-saudara sedarah mereka dengan mencocokkanDNA-nya.Setiap bebek memiliki kode DNA yang unik Ai (1 ≤ Ai ≤ 2 000 000000).Dua bebek dikatakan berasal dari satu keluarga yang sama jikaselisih DNA-nya kurang dari D (1 ≤ D ≤ 10 000).Jika bebek X satu keluarga dengan bebek Y, dan bebek Y satukeluarga dengan bebek Z, maka dapat dipastikan bebek X, Y dan Zketiganya berasal dari keluarga yang sama.Bantulah Pak Dengklek menentukan banyak keluarga/leluhur yangberbeda dari semua bebek-bebeknya.

Algoritma + Pemrograman Pascal

Page 14: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Format Masukan dan KeluaranMasukan:

Baris pertama berisi dua buah bilanganbulat N (1 ≤ N ≤ 100 000) yangmenyatakan banyak bebek dan D (2 ≤ D≤ 10 000) yang menyatakan batastoleransi kesamaan DNA bebek.N baris berikutnya masing-masing berisisebuah bilangan bulat Ai (1 ≤ Ai ≤ 2 000000 000) yang merepresentasikan kodeDNA bebek dan terurut dari kecil ke besar.

Keluaran:Sebuah bilangan bulat yang menyatakanjumlah keluarga berbeda dari bebek-bebekPak Dengklek

Contoh

Algoritma + Pemrograman Pascal

Page 15: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.

Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 16: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.

Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 17: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).

Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 18: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.

Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 19: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.

Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 20: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.

Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 21: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.

Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 22: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Pasar Rakyat

SoalDesa Pak Dengklek sering kedatangan para pedagang dari berbagaidaerah.Pedagang-pedagang ini datang mengunjungi desa Pak Dengkleksecara periodik dalam beberapa hari sekali.Setiap pedagang mempunyai perioda masing-masing (mungkin adapedagang yang menetapkan perioda yang sama walaupun padaumumnya berbeda).Akibatnya bisa terjadi, semua pedagang datang di hari yangbersamaan.Saat itu lah sebuah pasar besar digelar dengan sebutan Pasar Rakyat.Pak Dengklek sangat suka belanja dan selalu menantikan datangnyaPasar Rakyat.Kebetulan, hari ini Pasar Rakyat kembali digelar dan hampirmencapai penghujungnya.Pak Dengklek yang tidak sabar menunggu, mulai sibuk menghitung,berapa hari lagikah Pasar Rakyat akan kembali digelar?

Algoritma + Pemrograman Pascal

Page 23: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Format Masukan dan KeluaranMasukan:

Baris pertama masukan berisi sebuahbilangan bulat N (2 ≤ N ≤ 20) yangmenyatakan banyak pedagang yangmengunjungi desa Pak Dengklek. N barisberikutnya masing-masing berisi sebuahbilangan Di (1 ≤ Di ≤ 100 000) yangmenyatakan periode kunjungan pedagangke-i.

Keluaran:Sebuah bilangan bulat yang merupakanbanyak hari berikutnya dimana PasarRakyat akan diadakan apabila hari iniadalah hari penyelenggaraan Pasar Rakyat.Keluaran dijamin tidak akan lebih dari 100000.

Contoh

Algoritma + Pemrograman Pascal

Page 24: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Penjumlahan

Soal

Tipe data 32-bit integer (biasanya bernama long pada bahasaC/C++ dan longint pada Pascal) hanya mampu menyimpan angkasampai sekitar 2 milyar.

Kali ini Anda ditugaskan untuk membuat operasi penjumlahan padabilangan bulat positif yang bisa jauh lebih besar daripada 2 milyar

Algoritma + Pemrograman Pascal

Page 25: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Penjumlahan

Soal

Tipe data 32-bit integer (biasanya bernama long pada bahasaC/C++ dan longint pada Pascal) hanya mampu menyimpan angkasampai sekitar 2 milyar.Kali ini Anda ditugaskan untuk membuat operasi penjumlahan padabilangan bulat positif yang bisa jauh lebih besar daripada 2 milyar

Algoritma + Pemrograman Pascal

Page 26: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Format Masukan dan KeluaranMasukan:

Baris pertama berisi sebuah bilangan bulatpositif dengan panjang minimal 1 digit danpanjang maksimal 100 digit.Baris kedua berisi sebuah bilangan bulatpositif dengan panjang minimal 1 digit danpanjang maksimal 100 digit.Digit pertama dari bilangan bulat yangdiberikan tidak mungkin 0 (nol).

Keluaran:Sebuah baris berisi hasil penjumlahan darikedua bilangan bulat yang diberikan padamasukan.Digit pertama daripada bilangan bulatyang dikeluarkan tidak boleh 0 (nol).

Contoh

Algoritma + Pemrograman Pascal

Page 27: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Susu Cap Dengklek

SoalPak Dengklek menjalin kerja sama dengan sahabat jauhnya,meluncurkan produk susu kaleng impor berbentuk silinder denganmerek lokal “Susu Cap Dengklek”.

Untuk menarik minat pembeli, Pak Dengklek mengadakan kuisberhadiah dengan meluncurkan beberapa susu kaleng limited edition.Susu ini memiliki label khusus dengan gambar sebuah matriks yangsetelah dilekatkan pada kaleng berbentuk silinder tersebut akanmembentuk matriks sirkuler berukuran M x N (1 ≤ M, N ≤ 50)yang melingkar di sekeliling kalengnya.Tujuan dari kuis ini adalah menemukan sebuah nilai maksimum yangdapat dibentuk dari penjumlahan elemen-elemen submatriks ukuranB x K dari matriks sirkuler pada label kaleng.Bisakah Anda menyelesaikan kuis Pak Dengklek ini?

Algoritma + Pemrograman Pascal

Page 28: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Susu Cap Dengklek

SoalPak Dengklek menjalin kerja sama dengan sahabat jauhnya,meluncurkan produk susu kaleng impor berbentuk silinder denganmerek lokal “Susu Cap Dengklek”.Untuk menarik minat pembeli, Pak Dengklek mengadakan kuisberhadiah dengan meluncurkan beberapa susu kaleng limited edition.

Susu ini memiliki label khusus dengan gambar sebuah matriks yangsetelah dilekatkan pada kaleng berbentuk silinder tersebut akanmembentuk matriks sirkuler berukuran M x N (1 ≤ M, N ≤ 50)yang melingkar di sekeliling kalengnya.Tujuan dari kuis ini adalah menemukan sebuah nilai maksimum yangdapat dibentuk dari penjumlahan elemen-elemen submatriks ukuranB x K dari matriks sirkuler pada label kaleng.Bisakah Anda menyelesaikan kuis Pak Dengklek ini?

Algoritma + Pemrograman Pascal

Page 29: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Susu Cap Dengklek

SoalPak Dengklek menjalin kerja sama dengan sahabat jauhnya,meluncurkan produk susu kaleng impor berbentuk silinder denganmerek lokal “Susu Cap Dengklek”.Untuk menarik minat pembeli, Pak Dengklek mengadakan kuisberhadiah dengan meluncurkan beberapa susu kaleng limited edition.Susu ini memiliki label khusus dengan gambar sebuah matriks yangsetelah dilekatkan pada kaleng berbentuk silinder tersebut akanmembentuk matriks sirkuler berukuran M x N (1 ≤ M, N ≤ 50)yang melingkar di sekeliling kalengnya.

Tujuan dari kuis ini adalah menemukan sebuah nilai maksimum yangdapat dibentuk dari penjumlahan elemen-elemen submatriks ukuranB x K dari matriks sirkuler pada label kaleng.Bisakah Anda menyelesaikan kuis Pak Dengklek ini?

Algoritma + Pemrograman Pascal

Page 30: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Susu Cap Dengklek

SoalPak Dengklek menjalin kerja sama dengan sahabat jauhnya,meluncurkan produk susu kaleng impor berbentuk silinder denganmerek lokal “Susu Cap Dengklek”.Untuk menarik minat pembeli, Pak Dengklek mengadakan kuisberhadiah dengan meluncurkan beberapa susu kaleng limited edition.Susu ini memiliki label khusus dengan gambar sebuah matriks yangsetelah dilekatkan pada kaleng berbentuk silinder tersebut akanmembentuk matriks sirkuler berukuran M x N (1 ≤ M, N ≤ 50)yang melingkar di sekeliling kalengnya.Tujuan dari kuis ini adalah menemukan sebuah nilai maksimum yangdapat dibentuk dari penjumlahan elemen-elemen submatriks ukuranB x K dari matriks sirkuler pada label kaleng.

Bisakah Anda menyelesaikan kuis Pak Dengklek ini?

Algoritma + Pemrograman Pascal

Page 31: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Susu Cap Dengklek

SoalPak Dengklek menjalin kerja sama dengan sahabat jauhnya,meluncurkan produk susu kaleng impor berbentuk silinder denganmerek lokal “Susu Cap Dengklek”.Untuk menarik minat pembeli, Pak Dengklek mengadakan kuisberhadiah dengan meluncurkan beberapa susu kaleng limited edition.Susu ini memiliki label khusus dengan gambar sebuah matriks yangsetelah dilekatkan pada kaleng berbentuk silinder tersebut akanmembentuk matriks sirkuler berukuran M x N (1 ≤ M, N ≤ 50)yang melingkar di sekeliling kalengnya.Tujuan dari kuis ini adalah menemukan sebuah nilai maksimum yangdapat dibentuk dari penjumlahan elemen-elemen submatriks ukuranB x K dari matriks sirkuler pada label kaleng.Bisakah Anda menyelesaikan kuis Pak Dengklek ini?

Algoritma + Pemrograman Pascal

Page 32: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Format Masukan dan KeluaranMasukan:

Baris pertama berisi dua buah bilangan bulat M danN (1 ≤ M, N ≤ 50) dimana M menyatakan banyakbaris dan N menyatakan banyak kolom dari matriksketika label kaleng dipotong.Baris kedua juga berisi dua buah bilangan bulat Bdan K (1 ≤ B ≤ M, 1 ≤ K ≤ N) yangmasing-masing menyatakan ukuran baris dan kolomsubmatriks.M baris berikutnya berisi N buah bilangan bulat Aij(-32 768 ≤ Aij ≤ 32 767) yang menyatakan elemenmatriks pada baris ke-i dan kolom ke-j.Karena matriksnya sirkuler, tentu saja kolom ke-Mtepat berhimpitan dengan kolom pertama ketikalabel belum terpotong.

Keluaran:Sebuah bilangan bulat yang menyatakan jumlahmaksimum yang dapat dibentuk dari submatriks B xK dari matriks yang diberikan di masukan.

Contoh

Algoritma + Pemrograman Pascal

Page 33: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Wild Card

Soal

Dalam pencocokan string, karakter asterisk (*) sering dipakaisebagai karakter wildcard (karakter yang dapat dicocokan dengannol atau lebih karakter apa saja).

Misalnya, ma* dapat dicocokan dengan makan, makanan, main, ma.Namun, ma* tidak dapat dicocokkan dengan minum, mula, hama.Tanda asterisk ini dapat berada di depan, tengah, atau belakang daripattern yang akan dicari.Buatlah program yang diberikan sebuah pattern dan daftar kata-katayang akan dicocokkan dengan pattern tersebut, mengeluarkankata-kata yang berhasil dicocokan.

Algoritma + Pemrograman Pascal

Page 34: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Wild Card

Soal

Dalam pencocokan string, karakter asterisk (*) sering dipakaisebagai karakter wildcard (karakter yang dapat dicocokan dengannol atau lebih karakter apa saja).Misalnya, ma* dapat dicocokan dengan makan, makanan, main, ma.

Namun, ma* tidak dapat dicocokkan dengan minum, mula, hama.Tanda asterisk ini dapat berada di depan, tengah, atau belakang daripattern yang akan dicari.Buatlah program yang diberikan sebuah pattern dan daftar kata-katayang akan dicocokkan dengan pattern tersebut, mengeluarkankata-kata yang berhasil dicocokan.

Algoritma + Pemrograman Pascal

Page 35: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Wild Card

Soal

Dalam pencocokan string, karakter asterisk (*) sering dipakaisebagai karakter wildcard (karakter yang dapat dicocokan dengannol atau lebih karakter apa saja).Misalnya, ma* dapat dicocokan dengan makan, makanan, main, ma.Namun, ma* tidak dapat dicocokkan dengan minum, mula, hama.

Tanda asterisk ini dapat berada di depan, tengah, atau belakang daripattern yang akan dicari.Buatlah program yang diberikan sebuah pattern dan daftar kata-katayang akan dicocokkan dengan pattern tersebut, mengeluarkankata-kata yang berhasil dicocokan.

Algoritma + Pemrograman Pascal

Page 36: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Wild Card

Soal

Dalam pencocokan string, karakter asterisk (*) sering dipakaisebagai karakter wildcard (karakter yang dapat dicocokan dengannol atau lebih karakter apa saja).Misalnya, ma* dapat dicocokan dengan makan, makanan, main, ma.Namun, ma* tidak dapat dicocokkan dengan minum, mula, hama.Tanda asterisk ini dapat berada di depan, tengah, atau belakang daripattern yang akan dicari.

Buatlah program yang diberikan sebuah pattern dan daftar kata-katayang akan dicocokkan dengan pattern tersebut, mengeluarkankata-kata yang berhasil dicocokan.

Algoritma + Pemrograman Pascal

Page 37: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Wild Card

Soal

Dalam pencocokan string, karakter asterisk (*) sering dipakaisebagai karakter wildcard (karakter yang dapat dicocokan dengannol atau lebih karakter apa saja).Misalnya, ma* dapat dicocokan dengan makan, makanan, main, ma.Namun, ma* tidak dapat dicocokkan dengan minum, mula, hama.Tanda asterisk ini dapat berada di depan, tengah, atau belakang daripattern yang akan dicari.Buatlah program yang diberikan sebuah pattern dan daftar kata-katayang akan dicocokkan dengan pattern tersebut, mengeluarkankata-kata yang berhasil dicocokan.

Algoritma + Pemrograman Pascal

Page 38: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

MasukanBaris pertama berisi sebuah string yangpanjangnya minimal 1 dan maksimal 100karakter.Dijamin bahwa string ini tepat mengandungsebuah karakter asterisk (*) dankarakter-karakter lainnya adalah ’a’-’z’ (hurufkecil).String ini adalah pattern untuk dicocokkandengan string-string berikutnya.Baris kedua berisi sebuah bilangan bulatN (1≤ N ≤ 100).N baris berikutnya masing-masing berisisebuah string yang panjangnya minimal 1 danmaksimal 100 karakter. String-string iniadalah string-string yang akan dicocokkandengan pattern.Dijamin bahwa setiap karakter adalah ’a’-’z’(huruf kecil).

KeluaranKeluaran terdiri atasnol atau lebih baris.Masing-masing barisberisi sebuah stringyang berhasildicocokkan denganpattern padamasukan.Keluarkan string yangberhasil dicocokkansesuai dengan urutanstring pada masukan.

Algoritma + Pemrograman Pascal

Page 39: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

MasukanBaris pertama berisi sebuah string yangpanjangnya minimal 1 dan maksimal 100karakter.Dijamin bahwa string ini tepat mengandungsebuah karakter asterisk (*) dankarakter-karakter lainnya adalah ’a’-’z’ (hurufkecil).String ini adalah pattern untuk dicocokkandengan string-string berikutnya.Baris kedua berisi sebuah bilangan bulatN (1≤ N ≤ 100).N baris berikutnya masing-masing berisisebuah string yang panjangnya minimal 1 danmaksimal 100 karakter. String-string iniadalah string-string yang akan dicocokkandengan pattern.Dijamin bahwa setiap karakter adalah ’a’-’z’(huruf kecil).

KeluaranKeluaran terdiri atasnol atau lebih baris.Masing-masing barisberisi sebuah stringyang berhasildicocokkan denganpattern padamasukan.Keluarkan string yangberhasil dicocokkansesuai dengan urutanstring pada masukan.

Algoritma + Pemrograman Pascal

Page 40: Algoritma + Pemrograman Pascal · FormatMasukandanKeluaran Masukan: Baris pertama berisi dua buah bilangan bulat M dan N (1 M, N 50) dimana M menyatakan banyak baris dan N menyatakan

Contoh

Contoh1

Contoh 2

Algoritma + Pemrograman Pascal