"All can be known, and known by me."
Carl adalah seorang penyihir. Dia memiliki banyak mantra. Sebagai seorang penyihir yang hebat, dia pun memiliki cara khusus untuk mengingat serta mengaktifkan mantra yang dia miliki.
Untuk mengaktifkan mantra, Carl menggunakan aura. Dia memiliki N jenis aura dan dia dapat mengaktifkan K aura sekaligus. Untuk mengaktifkan mantra yang spesifik, berikut hal yang harus dilakukan Carl:
- Carl harus mengaktifkan tepat K aura.
- Aura yang aktif boleh sama (mengaktifkan aura yang sama akan memperkuat aura tersebut)
- Setelah kedua kondisi diatas dipenuhi, barulah Carl bisa mengaktifkan mantra.
Input
Baris pertama terdapat sebuah bilangan bulat T (1 <= T <= 50) yang menyatakan jumlah kasus. T baris selanjutnya masing-masing berisi dua buah bilangan N dan K (1 <= N, K <= 1 000 000).
Output
Untuk setiap kasus outputkan pada satu baris sebuah bilangan bulat yang menyatakan jumlah mantra yang dimiliki Carl modulo 1 000 000 007.
Contoh Input
2
3 3
2 3
Contoh Output
3 3
2 3
Contoh Output
10
4
Penjelasan
Pada kasus pertama, ada tiga aura dan Carl dapat mengaktifkan tiga aura sekaligus. Anggaplah ketiga aura tersebut diberi nama Quas(Q), Wex(W), dan Exort(E). Berikut mantra-mantra yang Carl miliki:
4
Penjelasan
Pada kasus pertama, ada tiga aura dan Carl dapat mengaktifkan tiga aura sekaligus. Anggaplah ketiga aura tersebut diberi nama Quas(Q), Wex(W), dan Exort(E). Berikut mantra-mantra yang Carl miliki:
QQQ - Cold Snap
QQW - Ghost Walk
QQE - Ice wall
WWQ - Tornado
QWE - Deafening Blast
EEQ - Forged Spirit
WWW - EMP
WWE - Alacrity
EEW - Chaos Meteor
EEE - Sun Strike
Total ada 10 mantra. Perlu diingat bahwa Carl dapat mengaktifkan aura yang sama (seperti pada mantra Cold Snap, dimana dia mengaktifkan tiga aura Quas).
Pada kasus kedua, anggaplah aura yang dimiliki Carl adalah Quas(Q) dan Wex(W). Mantra yang dimilikinya adalah:
QQW - Ghost Walk
QQE - Ice wall
WWQ - Tornado
QWE - Deafening Blast
EEQ - Forged Spirit
WWW - EMP
WWE - Alacrity
EEW - Chaos Meteor
EEE - Sun Strike
Total ada 10 mantra. Perlu diingat bahwa Carl dapat mengaktifkan aura yang sama (seperti pada mantra Cold Snap, dimana dia mengaktifkan tiga aura Quas).
Pada kasus kedua, anggaplah aura yang dimiliki Carl adalah Quas(Q) dan Wex(W). Mantra yang dimilikinya adalah:
QQQ - Cold Snap
QQW - Ghost Walk
WWQ - Tornado
WWW - EMP
Budi ingin membangun sebuah monumen pada lahan berukuran N x M (3 <= N, M <= 500) petak bujur sangkar. Monumen yang akan dibangun mempunyai alas berbentuk bujur sangkar yang diputar 45 derajat dan monumen menempati sebuah petak yang terletak di tengah-tengah alas. Perlu diketahui bahwa luas alas harus lebih besar dari luas monumen.
QQW - Ghost Walk
WWQ - Tornado
WWW - EMP
Monumen
Time limit 3 detik
Budi ingin membangun sebuah monumen pada lahan berukuran N x M (3 <= N, M <= 500) petak bujur sangkar. Monumen yang akan dibangun mempunyai alas berbentuk bujur sangkar yang diputar 45 derajat dan monumen menempati sebuah petak yang terletak di tengah-tengah alas. Perlu diketahui bahwa luas alas harus lebih besar dari luas monumen.
Dalam membangun monumen, Budi sangat rewel dengan tingkat keindahan monumen. Setiap petak mempunyai tingkat keindahan P (-1000 <= P <= 1000) yang berbeda. Tingkat keindahan monumen dihitung dari total tingkat keindahan area yang dilingkupi alas monumen termasuk monumen itu sendiri.
Bantulah Budi untuk membangun monumen yang paling indah. Karena ini adalah proyek milik pemerintah maka Budi tidak boleh untuk tidak membangun monumen tersebut.
Input
Baris pertama berisi sebuah bilangan bulat T (1 <= T <= 100) yang menyatakan jumlah kasus. Setiap kasus terdiri dari dua baris, baris pertama berisi dua buah bilangan bulat N dan M yang menyatakan ukuran petak. N baris berikutnya masing-masing berisi M buah bilangan bulat dipisahkan spasi yang menyatakan tingkat keindahan pada setiap petak.
Output
Untuk setiap kasus, output terdiri atas sebuah baris yang berisi sebuah bilangan bulat yang menyatakan tingkat keindahan monumen terbesar yang bisa dibangun oleh Budi.
Contoh Input
1
3 3
1 1 1
1 1 1
1 1 1
Contoh Output
3 3
1 1 1
1 1 1
1 1 1
Contoh Output
5
Saya dan adik saya sering makan lotek (lotek adalah makanan mirip gado-gado yang banyak ditemui di Yogyakarta). Saya selalu makan dengan porsi normal, sedang adik saya tidak selalu makan dengan porsi normal. Terkadang dia makan dengan porsi yang lebih besar, tapi pernah juga dia makan dengan porsi yang lebih kecil.
Suatu ketika, kami berdua makan di warung lotek di dekat tempat tinggal kami. Seperti biasa, saya makan dengan porsi standar dengan harga X. Adik saya memesan dengan porsi yang berbeda. Dia berkata kepada penjualnya,"Buatkan saya lotek dengan harga Y". Karena penjualnya merupakan orang yang adil, dia membuatkan lotek untuk adik saya sesuai dengan harga yang diberikan olehnya.
Saya pun penasaran, berapa perbandingan porsi adik saya pesan dengan porsi yang saya pesan? Bantulah saya menghitungnya.
Lotek
Time limit 1 detik
Saya dan adik saya sering makan lotek (lotek adalah makanan mirip gado-gado yang banyak ditemui di Yogyakarta). Saya selalu makan dengan porsi normal, sedang adik saya tidak selalu makan dengan porsi normal. Terkadang dia makan dengan porsi yang lebih besar, tapi pernah juga dia makan dengan porsi yang lebih kecil.
Suatu ketika, kami berdua makan di warung lotek di dekat tempat tinggal kami. Seperti biasa, saya makan dengan porsi standar dengan harga X. Adik saya memesan dengan porsi yang berbeda. Dia berkata kepada penjualnya,"Buatkan saya lotek dengan harga Y". Karena penjualnya merupakan orang yang adil, dia membuatkan lotek untuk adik saya sesuai dengan harga yang diberikan olehnya.
Saya pun penasaran, berapa perbandingan porsi adik saya pesan dengan porsi yang saya pesan? Bantulah saya menghitungnya.
Input
Pada baris pertama, diberikan sebuah bilangan bulat positif N (1 <= N <= 100), yang menandakan berapa kali kami berdua makan di warung lotek. N baris berikutnya, diberikan dua buah bilangan bulat positif X dan Y (1 <= X, Y <= 100 000), yang menunjukkan harga porsi lotek yang saya pesan dan yang adik saya pesan pada kunjungan ke-i kami ke warung lotek.
Pada baris pertama, diberikan sebuah bilangan bulat positif N (1 <= N <= 100), yang menandakan berapa kali kami berdua makan di warung lotek. N baris berikutnya, diberikan dua buah bilangan bulat positif X dan Y (1 <= X, Y <= 100 000), yang menunjukkan harga porsi lotek yang saya pesan dan yang adik saya pesan pada kunjungan ke-i kami ke warung lotek.
Output
Keluarkan N buah baris, dimana baris ke-i adalah porsi lotek yang adik saya pesan pada kunjungan ke-i. Perlu diingat bahwa penulisan jawabannya haruslah dalam bentuk "A/B", dimana B tidak membagi habis A.
Keluarkan N buah baris, dimana baris ke-i adalah porsi lotek yang adik saya pesan pada kunjungan ke-i. Perlu diingat bahwa penulisan jawabannya haruslah dalam bentuk "A/B", dimana B tidak membagi habis A.
4/3
16/13
Setelah model lapisan disiapkan, Catur lalu menempatkan sejumlah titik secara sembarang pada model lapisan tersebut sebagai sensor yang dapat membuat atau menerima gelombang. Beberapa saat kemudian Catur menyadari bahwa titik-titik yang ditempatkan tadi jumlahnya terlalu banyak dan Catur lupa mencatat lapisan tempat titik-titik itu berada sebelum memulai langkah selanjutnya.
Input
Baris pertama terdapat sebuah bilangan bulat N (1 <= N <= 100) yang menyatakan jumlah lapisan. Kemudian baris-baris selanjutnya terdapat deskripsi dari N+1 batas lapisan terurut dari atas ke bawah (koordinat y awal terkecil sampai terbesar). Setiap batas lapisan diawali sebuah bilangan bulat pada satu baris Li (2 <= Li <= 20000) yang menyatakan jumlah titik yang menyusun batas lapisan tersebut. Li baris berikutnya masing-masing terdapat dua buah bilangan bulat X dan Y (-10000 <= X, Y <= 10000) yang menyatakan titik-titik penyusun batas lapisan. Titik-titik tersebut terurut dari kiri ke kanan (X(j) < X(j+1)). Dijamin tidak ada dua batas lapisan yang saling bersinggungan serta semua batas lapisan mempunyai koordinat X awal dan akhir yang sama. Setelah deskripsi batas lapisan, terdapat sebuah bilangan M (1 <= M <= 10000) pada satu baris yang menyatakan jumlah titik sensor yang ditempatkan. M baris berikutnya masing-masing terdapat dua buah bilangan Sx dan Sy (-10000 <= Sx, Sy <= 10000) yang menyatakan koordinat titik sensor yang ditempatkan. Dijamin titik sensor terletak pada suatu lapisan.
Output
Untuk setiap titik sensor outputkan pada satu baris sebuah bilangan bulat yang menyatakan nomor lapisan tempat titik sensor tersebut berada. Lapisan dinomori 1 sampai N, dari lapisan teratas ke lapisan terbawah. Jika titik sensor terletak pada batas lapisan outputkan nomor lapisan terkecil.
Contoh Input
2
2
0 0
1000 0
3
0 100
500 50
1000 200
2
0 250
1000 250
2
500 40
500 50
Contoh Output
1
1
Ani senang mengoleksi gambar peta. Suatu hari Ani ingin menggunakan komputer barunya untuk menampilkan koleksi gambar peta yang pernah dia buat. Ani mencoba membuka salah satu gambar peta untuk ditampilkan pada komputer barunya.
Setelah ditampilkan, ternyata gambar peta yang ditampilkan "dipaksa" memenuhi layar komputer sehingga gambar peta menjadi lebih pipih karena mengikuti ukuran layar. Ani tidak menyukai gambar peta yang menjadi lebih pipih karena membuat informasi yang didapat dari peta menjadi tidak akurat.
Kemudian, Ani menyadari bahwa layar pada komputer barunya selalu menampilkan gambar peta di tengah layar serta dapat menampilkan sejumlah piksel ukuran berapapun dan dapat diubah sesuai yang diinginkan. Secara default ukuran piksel yang ditampilkan layar mengikuti ukuran gambar. Ani ingin mengubah ukuran piksel yang ditampilkan agar gambar peta dapat ditampilkan secara penuh dan sesuai ukuran aslinya.
Input
Baris pertama berisi sebuah bilangan bulat T (1 <= T <= 100) yang menyatakan jumlah kasus. Setiap kasus terdiri dari dua baris, baris pertama berisi dua buah bilangan bulat Ws dan Hs yang menyatakan ukuran layar. Baris berikutnya berisi dua buah bilangan bulat Wm dan Hm yang menyatakan ukuran gambar peta. (1 <= Ws, Hs, Wm, Hm <= 10000)
Output
Untuk setiap kasus, output terdiri dari sebuah baris yang berisi dua buah bilangan bulat Wp dan Hp yang menyatakan ukuran piksel yang ditampilkan layar dibulatkan ke bilangan bulat terdekat.
Contoh Input
2
800 600
800 800
1024 768
1024 768
Contoh Output
1067 800
1024 768
16/13
Time limit 2 detik
Catur adalah seorang peneliti gempa bumi. Pada suatu hari Catur mencoba membuat simulasi gempa bumi pada lapisan-lapisan yang terdapat di dalam tanah. Setiap batas-batas antar lapisan di dalam tanah dimodelkan sebagai sekumpulan titik pada koordinat dua dimensi di mana setiap titik yang berurutan dihubungkan dengan garis. Setiap lapisan mempunyai sebuah koefisien V yang mempengaruhi rambatan gelombang pada lapisan tersebut.
Catur adalah seorang peneliti gempa bumi. Pada suatu hari Catur mencoba membuat simulasi gempa bumi pada lapisan-lapisan yang terdapat di dalam tanah. Setiap batas-batas antar lapisan di dalam tanah dimodelkan sebagai sekumpulan titik pada koordinat dua dimensi di mana setiap titik yang berurutan dihubungkan dengan garis. Setiap lapisan mempunyai sebuah koefisien V yang mempengaruhi rambatan gelombang pada lapisan tersebut.
Ilustrasi lapisan pada contoh input. Garis vertikal di kiri dan kanan gambar hanya sebagai penegas batas kiri dan kanan
Setelah model lapisan disiapkan, Catur lalu menempatkan sejumlah titik secara sembarang pada model lapisan tersebut sebagai sensor yang dapat membuat atau menerima gelombang. Beberapa saat kemudian Catur menyadari bahwa titik-titik yang ditempatkan tadi jumlahnya terlalu banyak dan Catur lupa mencatat lapisan tempat titik-titik itu berada sebelum memulai langkah selanjutnya.
Input
Baris pertama terdapat sebuah bilangan bulat N (1 <= N <= 100) yang menyatakan jumlah lapisan. Kemudian baris-baris selanjutnya terdapat deskripsi dari N+1 batas lapisan terurut dari atas ke bawah (koordinat y awal terkecil sampai terbesar). Setiap batas lapisan diawali sebuah bilangan bulat pada satu baris Li (2 <= Li <= 20000) yang menyatakan jumlah titik yang menyusun batas lapisan tersebut. Li baris berikutnya masing-masing terdapat dua buah bilangan bulat X dan Y (-10000 <= X, Y <= 10000) yang menyatakan titik-titik penyusun batas lapisan. Titik-titik tersebut terurut dari kiri ke kanan (X(j) < X(j+1)). Dijamin tidak ada dua batas lapisan yang saling bersinggungan serta semua batas lapisan mempunyai koordinat X awal dan akhir yang sama. Setelah deskripsi batas lapisan, terdapat sebuah bilangan M (1 <= M <= 10000) pada satu baris yang menyatakan jumlah titik sensor yang ditempatkan. M baris berikutnya masing-masing terdapat dua buah bilangan Sx dan Sy (-10000 <= Sx, Sy <= 10000) yang menyatakan koordinat titik sensor yang ditempatkan. Dijamin titik sensor terletak pada suatu lapisan.
Output
Untuk setiap titik sensor outputkan pada satu baris sebuah bilangan bulat yang menyatakan nomor lapisan tempat titik sensor tersebut berada. Lapisan dinomori 1 sampai N, dari lapisan teratas ke lapisan terbawah. Jika titik sensor terletak pada batas lapisan outputkan nomor lapisan terkecil.
Contoh Input
2
2
0 0
1000 0
3
0 100
500 50
1000 200
2
0 250
1000 250
2
500 40
500 50
Contoh Output
1
1
Peta
Time limit 1 detik
Ani senang mengoleksi gambar peta. Suatu hari Ani ingin menggunakan komputer barunya untuk menampilkan koleksi gambar peta yang pernah dia buat. Ani mencoba membuka salah satu gambar peta untuk ditampilkan pada komputer barunya.
Gambar peta asli (800x800)
Setelah ditampilkan, ternyata gambar peta yang ditampilkan "dipaksa" memenuhi layar komputer sehingga gambar peta menjadi lebih pipih karena mengikuti ukuran layar. Ani tidak menyukai gambar peta yang menjadi lebih pipih karena membuat informasi yang didapat dari peta menjadi tidak akurat.
Layar 800x600 menampilkan 800x800 piksel
Layar 800x600 menampilkan 1067x800 piksel
Kemudian, Ani menyadari bahwa layar pada komputer barunya selalu menampilkan gambar peta di tengah layar serta dapat menampilkan sejumlah piksel ukuran berapapun dan dapat diubah sesuai yang diinginkan. Secara default ukuran piksel yang ditampilkan layar mengikuti ukuran gambar. Ani ingin mengubah ukuran piksel yang ditampilkan agar gambar peta dapat ditampilkan secara penuh dan sesuai ukuran aslinya.
Input
Baris pertama berisi sebuah bilangan bulat T (1 <= T <= 100) yang menyatakan jumlah kasus. Setiap kasus terdiri dari dua baris, baris pertama berisi dua buah bilangan bulat Ws dan Hs yang menyatakan ukuran layar. Baris berikutnya berisi dua buah bilangan bulat Wm dan Hm yang menyatakan ukuran gambar peta. (1 <= Ws, Hs, Wm, Hm <= 10000)
Output
Untuk setiap kasus, output terdiri dari sebuah baris yang berisi dua buah bilangan bulat Wp dan Hp yang menyatakan ukuran piksel yang ditampilkan layar dibulatkan ke bilangan bulat terdekat.
Contoh Input
2
800 600
800 800
1024 768
1024 768
Contoh Output
1067 800
1024 768
Kelihatannya sulit soal gemastik 7 programmingnya :(
ReplyDeletePost a Comment