Seperti yang para peserta tahu, Babak kualifikasi BNPCHS 2009, telah usai tadi jam 6 sore, selamat kepada beberapa orang yang sudah memastikan dirinya di babak final. Untuk yang lain, bisa menunggu pengumuman peserta yang melaju ke babak final.
Untuk post kali ini, seperti judulnya, saya akan membahas soal-soal pemrograman yang keluar pada babak penyisihan BNPCHS 2009 tadi. Semoga dengan post ini, anda yang masih belum mengerti caranya, dapat belajar sehingga di babak final nanti, atau bagi yang belum beruntung, hasilnya kedepan akan lebih baik…
Pembahasan ini dapat saya lakukan, karena saya juga mengerjakan soal-soal yang diberikan pada babak penyisihan bersamaan dengan para peserta. Selesai mengerjakan selama kurang lebih 15 menit, saya pun baru mulai membantu juri-juri lainnya untuk men-judge jawaban-jawaban peserta.
]]>Btw, for you senior high students, don’t miss the 2009 BNPC-HS
![]()
This happens when i wanted to post this post too. Happened to my wordpress “Write post” page. Symantec detect the threat from these listed websites :
1. BNPC-HS (Login inside it)
2. Google Maps !
3. Google News !
4. GMail !
I think symantec blocks some javascript feature which make some things don’t work properly. (My wordpress WYSIWYG is gone… it’s cool… really
).
I can say that websites i opened up, don’t harm my computer. because those websites are websites that i recently viewed. Is These the false positives?
Hope norton quick fix it up.
]]>Pembahasan ini akan saya bagi menjadi 2, yaitu
1. Story babak pemrograman
2. Pembahasan Soal dan Solusi
3. Advancers
Here is the video clip:
Here is the lyric… Enjoy !
Xiao peng you, ni shi fou you hen duo wen hao, wei shen me
Little children, do you have a lot of questions, why
Bie ren zai na kan man hua, wo que zai xue hua hua, dui zhe gang qin shuo hua
When other kids are reading manga, I am learning to draw and learning to communicate with the piano
Bie ren zai wan you xi, wo que kao zai qiang bi bei wo de ABC
When other kids are playing games, I am leaning on the wall memorizing my ABCs
Wo shuo wo yao yi tai da da de fei ji, wo jue de dao yi tai jiu jiu lu yin ji
I said that I wanted a large airplane, but I got an old recorder
Wei shen me, yao ting ma ma de hua, zhang da hou ni jiu hui kai shi dong de zhe zhong hua
Why should I listen to mother’s words? When you grow up you will understand what I am saying
Zhang da hou wo kai shi ming bai, wei shen me wo pao de bi bie ren kuai, fei de bi bie ren gao
After I got older I started to realize why I run faster than others and fly further than other people
Jiang lai da jia kan de dou shi wo hua de man hua, da jia chang de dou shi wo xie de ge
In the future, people will be reading my mangas and all the songs they sing will be written by me
Ma ma de xin ku bu rang ni kan jian, wen nuan de shi pu zai ta xin li mian
Mother’s hard work isn’t seen by others. She knows the warm recipe by heart
You kong jiu duo duo wo wo ta de shou, ba shou qian zhe yi qi meng you
When you have time, hold her hand and sleep dream together
Ting ma ma de hua, bie rang ta shou shang, xiang kuai kuai zhang da cai neng bao hu ta
Listen to mother’s words, don’t let her get hurt. You want to grow up quickly so you can take care of her
Mei li de bai fa, xing fu zhong fa ya tian shi de mo fa, wen nuan zhong ci xiang
Beautiful white hair, growing inside happiness. Angel’s magic benevolence within (her) gentleness
Zai ni de wei lai, yin yue shi ni de wang pai na wang pai tan ge lian ai
In your future, music is your key to success, use it to get into a relationship
Ai wo bu xiang ba ni jiao huai hai shi ting ma ma de hua ba, wan dian zai lian ai ba
Sigh, I don’t want to teach you to be a bad kid. Why don’t you listen to what your mother says and get in a relationship later
Wo zhi dao ni wei lai de lu, dang ma bi wo geng qing chu
I know your future path, but your mother knows it even better
Ni hui kai shi xue qi ta tong xue zai shu bao xie dong xie xi
You will start imitating friends and write things on your backpack
Dan shi wo jian yi ni zui hao xie, ma ma wo hui yong gong du shu
But I suggest you better write: Mom I will put in my best effort to learn
Yong gong du shu, zhe me hui cong wo zui ba shuo chu
I will study hard, how does that come from my mouth?
Bu xiang ni shu suo yi yao jiao ni, yong gong du shu
I need to teach you because I don’t want you to lose. Study hard
Ma ma zhi gei ni de mao yi, ni yao hao hao shou zhe
The sweater mother gave you, you have to keep it safe
Ying wei mu qin jie dao shi wo hui gao shu ta, wo hai liu zhe
Because on Mother’s Day, I want to tell her, I still have it
Dui le, wo hui yu dao le zou ren fa
Oh yea, I will meet Zhou Run Fa*
*Zhou Run Fa is a famous actor (Yes…He is Chow Yun Fat)
suo yi ni ke yi geng tong xue xuan yao du shen wei lai shi ni ba ba
So you can show off to your friends, “The God of Gambling will be your father”
Wo zhao bu dao tong nian xie de qing shu, ni xie wan bu yao song ren
I can’t find the childhood love letter. Don’t give it away after you write it
yin wei guo liang tian ni hui zai cao chang shang jian dao
Because you will find it on the playground two days later
Ni hui kai shi xi huan shang liu xing ge yin wei zhang xue you kai shi zhun bei chang wen bie
You will start to like pop music because Jacky Cheung is about to sing Kiss Goodbye*
*(Kiss Goodbye is a famous song that was a hit in the 90s)
Ting ma ma de hua, bie rang ta shou shang, xiang kuai kuai zhang da cai neng bao hu ta
Listen to mother’s words, don’t let her get hurt. You want to grow up quickly so you can take care of her and protect her
A Good Song To Listen
*UPDATED : No More Autoplay, Re-Translate to Simplified Chinese*
]]>In this problem, You are asked to verify Goldbach’s Conjecture for all even numbers less than a million.
What is Goldbach’s Conjecture exactly? in 1742, Christian Goldbach, made a following conjecture:
Every even number greater than 4 can be written as the sum of two odd prime numbers.
for example:
8 = 3 + 5, both 3 and 5 are odd prime numbers.
20= 3 + 17 = 17 + 3.
So, To solve this, we have to generate all odd primes that less than a million. from 3 until 1.000.000
. To generate all primes quickly, there exists a method named Sieve of eratosthenes that can generate primes number very quick in O(n log log n). In this post, i assume you already know this algorithm. Maybe in the next post, i’ll post the details of this algorithm.
First, call the sieve function to generate all the primes, then store the prime numbers in another array. Call it array primes, which contain exactly all primes less than a million.
Then simply iterate from the first odd prime, until the last odd prime (remember, all primes are odd except 2). When iterate, you have to give a simple condition to break the iteration if the current prime is more than the input itself. After that, We just subtract the input with the current prime number, then check whether the result is prime number or not by checking the prime numbers array. if the number exists in the prime array, then print the requested output, then simply break from the iteration.
Checking the result whether this result exists in the prime numbers array or not, can be done in O(lg n) complexity with binary search.
Look at the example:
When the input is 8, our first prime number is 3. then subtract 8 with 3 resulting 5. check whether 5 is prime number by find it at the prime array using binary search algorithm.
Here is the code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include<vector> #include<cstdio> #define FOR(i,a,b) for(int i=(a),_n=(b); i<=_n; i++) #define REP(i,n) FOR(i,0,(n)-1) using namespace std; vector<int> primes; void sieve(int n) { vector<bool> is_prime(n+1, true); is_prime[0] = is_prime[1] = false; int i; for (i=2; i*i<=n ; i++ ) { if (is_prime[i]) { if (i!=2) primes.push_back(i); for(int j=i*i; j<=n; j+=i) is_prime[j]=false; } } if (i%2==0) i++; for(i;i<=n;i+=2) if (is_prime[i]) primes.push_back(i); } int bs(int left, int right, int x) { int mid; while (left<=right) { mid = (left + right) / 2; if (primes[mid] == x) return 1; if (x<primes[mid]) { right = mid - 1; } else { left=mid+1; } } return 0; } int main() { sieve(1000002); int n; while (scanf("%d", &n)!=EOF && n!=0) { REP(i,primes.size()) { int b = n - primes[i]; if (bs(i,primes.size()-1,b)) { printf("%d = %d + %d\n", n,primes[i],b); goto end; } } puts("Goldbach's conjecture is wrong."); end:; } return 0; } |
How about your approach? So, if you have any approach that simplier than this one and you don’t mind to share it with us (me and other readers), just post your approach in the comment.
Thank You..
- Felix J
]]>Cerita tentang GeMasTIK ini gua bagi dalam beberapa bagian:
Hari ke-1 : Perjalanan ke Bandung.
Hari ke-2 : Yak, Battle Begins
Hari ke-3 : Wandering Around Bandung, IT Telkom, & Closing Ceremony
Hari ke-4 : Time to go Home :P~
Silahkan buka page selanjutnya yak untuk cerita Hari ke-1
]]>
Suatu hari dia melihat sebatang paku karat. Dan ia pun mencoret lantai tempat mobil ayahnya diparkirkan, tetapi karena lantainya terbuat dari marmer maka coretan tidak kelihatan. Dicobanya lagi pada mobil baru ayahnya. Ya… karena mobil itu bewarna gelap, maka coretannya tampak jelas. Apalagi anak-anak ini pun membuat coretan sesuai dengan kreativitasnya.
Hari itu ayah dan ibunya bermotor ke tempat kerja karena ingin menghindari macet. Setelah sebelah kanan mobil sudah penuh coretan maka ia beralih ke sebelah kiri mobil. Dibuatnya gambar ibu dan ayahnya,gambarnya sendiri, lukisan ayam, kucing dan lain sebagainya mengikut imaginasinya. Kejadian itu berlangsung tanpa disadari oleh si pembantu rumah.
Saat pulang petang, terkejutlah pasangan suami istri itu melihat mobil yang baru setahun dibeli dengan bayaran angsuran yang masih lama lunasnya. Si bapak yang belum lagi masuk ke rumah ini pun terus menjerit, “Kerjaan siapa ini !!!” …. Pembantu rumah yang tersentak dengan jeritan itu berlari keluar. Dia juga beristighfar. Mukanya merah padam ketakutan lebih2 melihat wajah bengis tuannya. Sekali lagi diajukan pertanyaan keras kepadanya, dia terus mengatakan “Saya tidak tahu..tuan.” “Kamu dirumah sepanjang hari, apa saja yg kau lakukan?” hardik si isteri lagi.
Si anak yang mendengar suara ayahnya, tiba-tiba berlari keluar dari kamarnya. Dengan penuh manja dia berkata “DIta yg membuat gambar itu ayahhh.. cantik …kan!” katanya sambil memeluk ayahnya sambil bermanja seperti biasa.. Si ayah yang sudah hilang kesabaran mengambil sebatang ranting kecil dari pohon di depan rumahnya, terus dipukulkannya berkali-kali ke telapak tangan anaknya. Si anak yang tak mengerti apa apa menangis kesakitan, pedih sekaligus ketakutan. Puas memukul telapak tangan, si ayah memukul pula belakang tangan anaknya.
Sedangkan Si ibu cuma mendiamkan saja, seolah merestui dan merasa puas dengan hukuman yang dikenakan. Pembantu rumah terbengong, tdk tahu hrs berbuat apa… Si ayah cukup lama memukul-mukul tangan kanan dan kemudian ganti tangan kiri anaknya. Setelah si ayah masuk ke rumah diikuti si ibu, pembantu rumah tersebut menggendong anak kecil itu, membawanya ke kamar.
Dia terperanjat melihat telapak tangan dan belakang tangan si anak kecil luka2 dan berdarah. Pembantu rumah memandikan anak kecil itu. Sambil menyiramnya dengan air, dia ikut menangis. Anak kecil itu juga menjerit-jerit menahan pedih saat luka2nya itu terkena air. Lalu si pembantu rumah menidurkan anak kecil itu. Si ayah sengaja membiarkan anak itu tidur bersama pembantu rumah. Keesokkan harinya, kedua belah tangan si anak bengkak. Pembantu rumah mengadu ke majikannya. “Oleskan obat saja!” jawab bapak si anak.
Pulang dari kerja, dia tidak memperhatikan anak kecil itu yang menghabiskan waktu di kamar pembantu. Si ayah konon mau memberi pelajaran pada anaknya. Tiga hari berlalu, si ayah tidak pernah menjenguk anaknya sementara si ibu juga begitu, meski setiap hari bertanya kepada pembantu rumah. “Dita demam, Bu”…jawab pembantunya ringkas. “Kasih minum panadol aja ,” jawab si ibu. Sebelum si ibu masuk kamar tidur dia menjenguk kamar pembantunya. Saat dilihat anaknya Dita dalam pelukan pembantu rumah, dia menutup lagi pintu kamar pembantunya. Masuk hari keempat, pembantu rumah memberitahukan tuannya bahwa suhu badan Dita terlalu panas. “Sore nanti kita bawa ke klinik.. Pukul 5.00 sudah siap” kata majikannya itu. Sampai saatnya si anak yang sudah lemah dibawa ke klinik. Dokter mengarahkan agar ia dibawa ke rumah sakit karena keadaannya susah serius. Setelah beberapa hari di rawat inap dokter memanggil bapak dan ibu anak itu. “Tidak ada pilihan..” kata dokter tersebut yang mengusulkan agar kedua tangan anak itu dipotong karena sakitnya sudah terlalu parah dan infeksi akut…”Ini sudah bernanah, demi menyelamatkan nyawanya maka kedua tangannya harus dipotong dari siku ke bawah” kata dokter itu. Si bapak dan ibu bagaikan terkena halilintar mendengar kata-kata itu. Terasa dunia berhenti berputar, tapi apa yg dapat dikatakan lagi.
Si ibu meraung merangkul si anak. Dengan berat hati dan lelehan air mata isterinya, si ayah bergetar tangannya menandatangani surat persetujuan pembedahan. Keluar dari ruang bedah, selepas obat bius yang disuntikkan habis, si anak menangis kesakitan. Dia juga keheranan melihat kedua tangannya berbalut kasa putih. Ditatapnya muka ayah dan ibunya. Kemudian ke wajah pembantu rumah. Dia mengerutkan dahi melihat mereka semua menangis. Dalam siksaan menahan sakit, si anak bersuara dalam linangan air mata. “Ayah.. ibu… Dita tidak akan melakukannya lagi…. Dita tak mau lagi ayah pukul. Dita tak mau jahat lagi… Dita sayang ayah..sayang ibu.”, katanya berulang kali membuatkan si ibu gagal menahan rasa sedihnya. “Dita juga sayang Mbok Narti..” katanya memandang wajah pembantu rumah, sekaligus membuat wanita itu meraung histeris.
“Ayah.. kembalikan tangan Dita. Kenapa diambil? Dita janji tidak akan mengulanginya lagi! Bagaimana caranya Dita mau makan nanti? Bagaimana Dita mau bermain nanti? Dita janji tdk akan mencoret2 mobil lagi.” katanya berulang-ulang. Serasa hancur hati si ibu mendengar kata-kata anaknya. Meraung2 dia sekuat hati namun takdir yang sudah terjadi tiada manusia dapat menahannya. Nasi sudah jadi bubur. Pada akhirnya si anak cantik itu meneruskan hidupnya tanpa kedua tangan dan ia masih belum mengerti mengapa tangannya tetap harus dipotong meski sudah minta maaf…
Tahun demi tahun kedua orang tua tsb menahan kepedihan dan kehancuran bathin sampai suatu saat Sang Ayah tak kuat lagi menahan kepedihannya dan wafat diiringi tangis penyesalannya yg tak bertepi,Namun, si Anak dengan segala keterbatasan dan kekurangannya tsb tetap hidup tegar bahkan sangat sayang dan selalu merindukan ayahnya…
——————-
Aku dapet cerita ini dari forum-forum maupun milis-milis. Menurutkuw, moral dari cerita ini adalah “Walaupun anak berbuat salah, jangan pernah memukul anak dan menyalahi dia (diri anak tersebut !). tapi baiknya orang tua harus menasihati bahwa yang dilakukannya adalah perbuatan kurang baik (bukan si anak yang tidak baik atau nakal).”
Hal ini (memukul jika ada melakukan kesalahan), sering dilakukan oleh kebanyakan orang tua, dengan alasan memberikan efek jera kepada anak tersebut. Tapi jika yang dilakukan oleh orang tua tersebut sampai berbuah pada kasus seperti di cerita tersebut bagaimana? Tidakkah orang tua merasa berdosa karena telah merenggut hampir seluruh masa depan anak? Orang tua dititipkan anak oleh Sang Kuasa untuk di-didik, bukan untuk di-didik tapi dipukul.
- Felix J
]]>Dalam ilmu matematika, sebuah kombinasi itu adalah gabungan beberapa objek dari suatu grup tanpa memperhatikan urutan. Jadi, {5,4,6} sama aja dengan {4,5,6}
Kombinasi biasanya dipake untuk menyelesaikan soal seperti ini:
Ada berapa kombinasi jika kamu hanya bisa membawa 3 pensil dari 4 pensil yang tersedia?
Jawaban dari pertanyaan diatas adalah 4 yang didapatkan dari rumus kombinasi yaitu nCk, dimana n adalah 4, dan k adalah 3. Rumus nCk ini biasa juga disebut n Choose k, yang artinya dari n item, kita hanya boleh memilih k item yang berbeda.
Rumus nCk sendiri adalah sebagai berikut:
n!
nCk = ---------
k!(n-k)!
dimana notasi “!” adalah notasi Faktorial (yang didefinisikan sebagai, n! = n * (n-1) * (n-2) * … * 1, atau simpelnya n! = n * (n-1)! ).
Dengan rumus diatas, kita tinggal memasukkan angka 4 dan 3 kedalam rumus itu.
4!
4C3 = ---------
3!(4-3)!
dengan ini maka kita bs melakukan seperti ini:
4 * 3!
4C3 = ---------
3!1!
Karena di ruas atas ada 3! dan di bawah ada 3!, maka kita dapat mencoretnya sehingga menjadi seperti ini.
4
4C3 = ---------
1!
Kita tahu bahwa 1! adalah 1. Maka hasilnya 4C3 diatas adalah 4. Sekarang yang menjadi tantangan adalah bagaimana cara untuk membuat rumus diatas dalam bahasa pemrograman !
Mari Kita lanjutkan ke halaman selanjutnya.
]]>Dulu kita sahabat
teman begitu hangat
mengalahkan sinar mentari
dulu kita sahabat
berteman bagai ulat
berharap jadi kupu-kupu
kini kita berjalan berjauh-jauhan
kau jauhi diriku karena sesuatu
mungkin ku terlalu bertingkah kejauhan
tapi itu karena kusayang
reff :
persahabatan bagai kepompong
mengubah ulat menjadi kupu-kupu
persahabatan bagai kepompong
hal yang tak mudah berubah menjadi indah
reff2 :
persahabatan bagai kepompong
maklumi teman hadapi perbedaan
persahabatan bagai kepompong
na na na na na na na na na…
Lagu ini bener2 simpel liriknya tapi dalem maknanya, dan lebih lagi, ini lagu enak banget didengerin
Bagi yang lom pernah denger ini lagu, you should try to listen to this song too
a Really great song !
Here is the link to download this song
Enjoy !
- Felix J
]]>