• Tidak ada hasil yang ditemukan

Secuil Cerita tentang Facebook Hacker Cup 2012 Qualification Round [Part II]

N/A
N/A
Protected

Academic year: 2021

Membagikan "Secuil Cerita tentang Facebook Hacker Cup 2012 Qualification Round [Part II]"

Copied!
5
0
0

Teks penuh

(1)

Secuil Cerita tentang Facebook Hacker Cup 2012

Qualification Round [Part II]

Temanya: Soal nomer pertama gagal upload, karena kesalahan teknis jadinya nggak bisa dinilai juri.

Oke Sesuai janji saya, saya akan mencoba berbagi pengalaman pada teman-teman tentang problem solve pada soal-soal yang diberikan hacker cup untuk setiap peserta. Saya coba review lagi bahwa di sana terdapat 3 soal, yaitu

1. Billboards 2. Auction

3. Alphabet Soup

Pada Part II ini saya hanya akan mengupas soal nomer 1. yang bertemakan

Billboards. Sebelum saya perlihatkan soalnya, saya mau sedikit berkomentar pada soal tersebut. soal tersebut sangat berguna bagi saya karena sangat dekat dengan pekerjaan saya dalam membangun web. Pada soal tersebut kita diajak jangan sembarangan/lebih tepatnya dengan feelings sendiri-sendiri dalam membuat box pada website. terutama seperti box yang digunakan advertise/link atau

semacamnya, khususnya jika didalam box tersebut berupa text. Oke kita lanjutkan saja untuk mengkupas soal pertama.

Soal :

We are starting preparations for Hacker Cup 2013 really early. Our first step is to prepare billboards to advertise the contest. We have text for hundreds of billboards, but we need your help to design them.

The billboards are of different sizes, but are all rectangular. The billboard widths and heights are all integers. We will supply you with the size in inches and the text we want printed. We want you to tell us how large we can print the text, such that it fits on the billboard without splitting any words across lines. Since this is to attract

(2)

hackers like yourself, we will use a monospace font, meaning that all characters are of the same width (e.g.. 'l' and 'm' take up the same horizontal space, as do space characters). The characters in our font are of equal width and height, and there will be no additional spacing between adjacent characters or adjacent rows. If you print a word on one line and print the next word on the next line, you do not need to print a space between them.

Let's say we want to print the text "Facebook Hacker Cup 2013" on a 350x100" billboard. If we use a font size of 33" per character, then we can print "Facebook" on the first line, "Hacker Cup" on the second and "2013" on the third. The widest of the three lines is "Hacker Cup", which is 330" wide. There are three lines, so the total height is 99". We cannot go any larger.

Input

The first line of the input file contains a single integer T: the number of test cases. T lines follow, each representing a single test case in the form "W H S". W and H are the width and height in inches of the available space. S is the text to be written.

Output

Output T lines, one for each test case. For each case, output "Case #t: s", where t is the test case number (starting from 1) and s is the maximum font size, in inches per character, we can use. The size must be an integral number of inches. If the text does not fit when printed at a size of 1", then output 0.

Constraints

- 1 ≤ T ≤ 20

- 1 ≤ W, H ≤ 1000

- The text will contain only lower-case letters a-z, upper-case letters A-Z, digits 0-9 and the space character

- The text will not start or end with the space character, and will never contain two adjacent space characters

- The text in each case contains at most 1000 characters

Example

input: 5 20 6 hacker cup 100 20 hacker cup 2013 10 20 MUST BE ABLE TO HACK 55 25 Can you hack 100 20 Hack your way to the cup output: Case #1: 3 Case #2: 10 Case #3: 2 Case #4: 8 Case #5: 7

(3)

from : facebook

 

Jawaban

untuk jawabannya, jika temen temen bisa menjawabnya, tolong di share ya... hehehe. Mungkin saya sedikit menjawabnya menggunakan algoritma saya.

Oke sebenernya bahasa pemrograman dan tools yang dapat digunakan itu banyak sekali asalkan " You can use any programming language that has a free compiler or interpreter available.".. oke karena JavaScript dan HTML itu free.. maka saya

menggunakan javascript untuk mengeksekusi algoritma saya.

 

Kita bahas tuntas ya tentang algoritma seadanya yang allah titipkan ke otak saya supaya algoritma tersebut mampir sejenak.

- masukkan data input.

- Pisahkan dulu input per line/baris sehingga kita mendapatkan data per line/baris. setelah itu masukkan kedalam wadah (kalau saya menggunakan array).

- Data pertama pada line pertama dijadikan acuan untuk looping ( lakukan looping sebanyak data pada line pertama).  Dan jangan lupa data tersebut harus di cek apakah bertype integer atau bukan. kalau bertipe integer apakah berada pada range 1 ≤ T ≤ 20?,  kalau tidak dalam range tersebut di isikan menggunakan maksimal(20) / minimal (1) - nya. Dan Jikalau datanya bukan bertype integer diberi nilai 0.

(4)

data pada line  2 ... T.  Kemudian lakukan proses pencocokan font terhadap kotak.

- Melakukan tarce per font dimulai dari font 1....seterusnya. yang dilakukan adalah menghitung jumlah karakter pada input apakah melebihi range dari

width atau tidak. Kalau tidak maka lakukan trace untuk font berikutnya misal

sehabis 1 lalu ganti ke font 2.

- Jika pada kasus trace font terjadi kasus melebihi range dari width maka

lakukan proses pemotongan karakter berdasarkan spasi terdekat di kata yang melebihi range dari width.

misal: 20 100 hanif affandi hartanto

dengan font = 1, otomatis pada width 20, maka pada kalimat diatas akan dihasilkan pemotongan menjadi hanif affandi. hal ini dilakukan karena seharusnya dengan width 20 dan font 1 kan yang boleh masuk ke box itu hanif affandi hartan (spasi juga dihitung loh) karena hartan itu bukan kata (hasil pemotongan) maka yang menjadi kalimat terakhir itu adalah affandi. Sehingga hartanto dijadikan line berikutnya.

line 1: hanif affandi

line 2: hartanto

- Kemudian lakuakan terus trace font seperti langkah-langkah sebelumnya hingga line output > height. Kalau sudah melebihi maka font yang dipakai adalah font yang sebelumnya (font (ketika melebihi height) - 1).

- nah ini info tambahan... sebenernya saya sudah membuat fungsi pemotong karakter/dijadikan keline berikutnya kalau ada satu kata ternyata pas font 1 aja udah nggak cukup karena jumlah karakter pada kata itu melebihi width dari box. Tapi karena disoalnya tidak boleh demikian ("If you print a word on

(5)

one line and print the next word on the next line, you do not need to print a space between them.") yang intinya tidak usah mengisi ruang maka alhasil saya buat 0 (nol).

misalnya: 10 600 hanifahdsbhdbsdbshjdbjs dnsjnd (jumlah karakter dari hanifahdsbhdbsdbshjdbjs > width) kalau dalam soal langsung aja jadiin nol.

- Dan tinggal menyusun outputnya tambahin "Case #" + (index looping) + ": " + (font maksimal yang dianjurkan).

 

Temen temen bisa download codenya di (mohon masukannya soalnya ane masih pemula)

Download File

Untuk soal berikutnya akan saya tulis pada Part berikutnya.

Terima Kasih.

 

Referensi

Dokumen terkait

Berdasarkan pada analisis yang dilakukan, dapat diketahui bahwa lokasi filter 1 yang optimum untuk jaringan studi kasus 1 adalah bus 7 dan lokasi filter 2

9 Menurut saya produk yang ditawarkan Kuliner Puja Sera Binjai lebih bervariasi dibandingkan dengan usaha sejenis lain. Keberhasilan

saham PT inco pertama kali tercatat di bursa efek indonesia pada tanggal 16 mei 1990 ketika 20% saham Perseroan ditawarkan kepada publik untuk memenuhi kewajiban

ajar  Instrumen penilaian pelajaran kewirausa- haan  Laporan kinerja siswa yang dihasilkan dalam SIM kinerja siswa  Buku referensi yang relevan 1.7 Membuat keputusan

bahwa berdasarkan pasal 11 Undang – undang Nomor 22 Tahun 1999 Tentang Pemerintahan Daerah Perlu menetapkan Kewenangan Pemerintah Kota Depok sebagai Daerah Otonom.. bahwa

Berdasarkan survey yang peneliti lakukan dari wawancara kepada salah satu mahasiswa Ekonomi Syari’ah angkatan 2015 IAIN Metro pelaku bisnis online yang menggunakan

Hasil: (a) hama dan penyakit utama (hama putih palsu, hama pengerek batang, tikus, serta penyakit bercak coklat, dan blas ) selalu dijumpai pada usahatani padi di Papua; (b)

Pada sûrah Ăli Imrân/3 ayat 95 ini diberikan penjelasan berikut, “Setelah jelas bahwa mereka tidak dapat menunjukkan bukti kebenaran mereka dan setelah terbukti