Asia-Pacific Informatics Olympiad 10 Mei 2008

dokumen-dokumen yang mirip
Figure 1: Sebuah Penukar Manik Terhebat dengan 5 ban berjalan dan 5 penukar.

Asia-Pacific Informatics Olympiad (APIO) 2012

INSTITUT TEKNOLOGI BANDUNG JUNIOR PROGRAMMING CONTEST 3

INSTITUT TEKNOLOGI BANDUNG SENIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

Sang Pelompat. Batas Waktu 1 detik. Batas Memori 64 MB

@copyright by Emy PENGANTAR ALGORITMA & PROGRAM & PROGRAM PENGERTIAN ALGORITMA NOTASI UNTUK ALGORITMA

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

INFORMATIKA/KOMPUTER. Hari 0 (Sesi Latihan) 1. Empek-empek 2. Gunting Kertas 3. Matriks Biner

OLIMPIADE SAINS NASIONAL IX

OLIMPIADE SAINS NASIONAL IX

OLIMPIADE SAINS NASIONAL VIII

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

PEMROGRAMAN BERORIENTASI OBJEK

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

Hari 1 / Soal 1: Bukit dan Lembah

Olimpiade Komputer Asia-Pasifik

Aplikasi Rekursif dalam Analisis Sintaks Program

PENGENALAN PROGRAM C++

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Prosedur. Nisa ul Hafidhoh

Dasar Pemrograman Java

Hari 2 1. Robot Pempek 2. Belanja Suvenir 3. Wisata Palembang

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Lecture Notes Algoritma dan Pemrograman

INFORMATIKA/KOMPUTER. Hari 0 (Sesi Latihan) 1. Empek-empek 2. Gunting Kertas 3. Matriks Biner

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

ilmu bahasa pemrograman ilmu c++ Copyright izie ilmu c++

Subprogram (dalam Bahasa C++ + Flowchart)

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

VARIABEL & TIPE DATA PEMROGRAMAN C++

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Chapter 4 Counting Repetition

Pertahanan Pekanbaru. Deskripsi. Format Masukan. Time limit: 1 s. Memory limit: 64 MB

12 Mei Batas Waktu: 5 jam. 3 soal Semua soal harus dikerjakan

TINGGI KANDANG SUSUN

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Pemrograman Dasar C. Minggu 8

SMA SANTO PAULUS PONTIANAK

Chapter 2 Procedure. Perjalanan dari rumah menuju ke supermarket :

BAB V STUDI KASUS: HASIL DAN PEMBAHASAN

Tipe Data, Variabel, Input/Output

Struktur Program. Rinta Kridalukmana

Faktorial. Kode Soal: OSN601 Batas Run-time: 1 detik / test-case Batas Memori: 32 MB Masukan: Standard input Keluaran: Standard output

Bahasa C. Dosen : Dhamayanti

Prosedur. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

OLIMPIADE SAINS NASIONAL VII

Gambar 1. Tampilan Layar Sebuah Program Animasi

Algoritma Pemrograman 2B (Pemrograman C++)

PROCEDURE DAN FUNCTION. Mardhiya Hayaty, ST, M.Kom

3. Analisis Masalah dan Penyelesaian

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

dilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C dalam pemakainnya memerlukan

BAB II TEORI DASAR. Gambar 1 Kurva untuk interpolasi linier. Sehingga diperoleh persamaan dari interpolasi linier sebagai berikut :

Pendahuluan Pemrograman Mikrokontroler

BAB VI SORTIR ATAU PENGURUTAN

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Chapter 5 Choice. repeatedly if tanda 2 on label: lakukan proses potong 2 if tanda 3 on label: lakukan proses potong 3 until switched off program 5.

PHP (HYPERTEXT PREPROCESSOR)

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

Bahasa Pemrograman Sejarah singkat C++ Struktur program C++ Yoannita

Kurikulum Qt. { Basic OOP } Chapter 4. Function

ALGORTIMA DAN PEMROGRAMAN

Berkas Soal Final Competitive Programming Tingkat Mahasiswa. CompFest 2013

BNPC-HS 2010 BABAK PENYISIHAN (PILIHAN GANDA)

SISTEM SANDI (KODE) Suatu rangkaian pengubah pesan bermakna (misal desimal) menjadi sandi tertentu (misal biner) disebut enkoder (penyandi).

BAB III PENGENALAN STRUKTUR BAHASA PASCAL. Kompetensi Dasar : 1. Mahasiswa mengenal dan memahami struktur bahasa Pascal

Kurikulum Qt. Chapter 4 Function. Fungsi

Brigida Arie Minartiningtyas, M.Kom

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Chapter 3.2 : Tipe, Nama dan Nilai

MODULAR (FUNGSI)

BAB I SEKILAS TENTANG C

1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda

UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

Dasar-dasar C/C++ Ekohariadi FT Unesa

Berkas Soal Penyisihan Competitive Programming Tingkat Mahasiswa. CompFest 2013

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

INFORMATIKA/KOMPUTER. Hari Pasar 16 Ilir 2. Menjinakkan Bom 3. Pos Wisata Sungai

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Tinjau algoritma dibawah ini

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

Konsep Dasar Pemrograman Dan Pengenalan C++

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Algoritma Pemrograman

BAB 8 Argumen dari Command-line

Algoritma dan Pemrograman

Struktur Data dan Algoritma IKI10400 Semester Gasal 2010/2011 Fakultas Ilmu Komputer Universitas Indonesia

Pengenalan Pascal. Tujuan Pembelajaran

Transkripsi:

Asia-Pacific Informatics Olympiad 10 Mei 2008 TUGAS BEADS ROADS DNA masukan standard input keluaran interaksi standard output batas waktu 2 detik 1 detik 1 detik batas memori 256 MB 128 MB 128 MB nilai 100 100 100 300 Bahasa C C++ Petunjuk Kompilasi gcc -o abc abc.c -std=c99 -O2 -DCONTEST -s -static -lm g++ -o abc abc.cpp -O2 -DCONTEST -s -static fpc -O1 -XS -dcontest abc.pas Durasi: 5 jam 3 soal Semua soal harus dicoba.

BEADS Manik-Manik Profesor X baru-baru ini meluncurkan hasil ciptaan terbarunya: Penukar Manik Terhebat (UBS dari Ultimate Bead Swapper). Seperti yang tertera, alat ini dapat membuat sebuah untaian manik-manik lebih menarik dengan cara menukar sejumlah manik-manik! UBS memiliki N ban berjalan (conveyor belts) yang diletakkan secara paralel dengan arah Utara- Selatan. N ban berjalan tersebut diberi nomor 1 hingga N dari kiri ke kanan. Setiap ban bergerak dari Utara ke Selatan dengan kecepatan yang sama. Ada M penukar (swappers) diletakkan di antara dua ban yang bersebelahan. Tidak ada dua penukar yang terletak sama jauhnya dari ujung Utara dari UBS. (Dengan kata lain, mereka dapat diurutkan secara total berdasarkan seberapa jauh mereka berada dari ujung Utara.) Penukar-penukar tersebut diberi nomor 1 hingga M dari Utara hingga Selatan. Gambar 1 menunjukkan sebuah UBS dilihat dari atas. Figure 1: Sebuah Penukar Manik Terhebat dengan 5 ban berjalan dan 5 penukar. Untuk menggunakan UBS, N manik-manik diletakkan di ujung utara dari ban berjalan pada saat yang sama sehingga mereka selalu membentuk sebuah baris horisontal di atas ban berjalan. Ketika dua buah manik terletak di bawah sebuah penukar, manik yang berada pada ban berjalan kanan berpindah posisi ke ban berjalan kiri, dan manik yang berada pada ban berjalan kiri berpindah posisi ke ban berjalan kanan. Setelah ditukar, kedua manik tidak merusak baris horisontal yang ada. Gambar 2 menggambarkan perilaku sebuah penukar. Tugas Tulislah sebuah program yang ketika diberikan jumlah ban berjalan N, jumlah penukar M, dan posisi dari setiap penukar, menjawab pertanyaan dalam bentuk berikut: Diberikan K dan J, untuk manik yang diletakkan pada ban K di ujung Utara dari UBS, Halaman 1 dari 5

BEADS 1 3 2 4 (a) (b) Figure 2: (a) Empat manik bergerak di atas ban berjalan. (b) Manik 2 dan 3 bertukar tempat setelah melalui sebuah penukar. pada ban mana kah manik tersebut berada setelah semua manik bergerak melampaui penukar J? Masukan Program Anda harus membaca dari standard input. Baris pertama berisi jumlah ban berjalan N(1 N 300.000) dan jumlah penukar M(1 M 300.000). M baris berikutnya berisi lokasi setiap penukar, terurut dari Utara ke Selatan. Setiap baris berisi sebuah bilangan bulat P(1 P M 1), yang berarti ada sebuah penukar yang menghubungkan ban berjalan P dan P + 1. Interaksi Setelah membaca masukan di atas, program Anda harus memanggil fungsi-fungsi yang tersedia dari perpustakaan (library) yang spesifikasinya dapat dilihat pada Tabel 1. Fungsi-fungsi tersebut harus dipanggil dalam urutan berikut ini: 1. Program memanggil fungsi getnumquestions untuk mendapatkan Q(1 Q 300.000), jumlah pertanyaanyang akan ditanyakan. 2. Program memanggil sebanyak Q kali: (a) fungsi getquestion untuk menerima sebuah pertanyaan. (b) fungsi answer untuk menjawab pertanyaan yang baru diterima. Kami menekankan bahwa getnumquestions harus dipanggil sekali saja pada saat pertama. getquestion dan answer harus dipanggil bergiliran: setelah memanggil getquestion, program Anda tidak boleh memanggil getquestion sbelum program tersebut memanggil answer, and sebaliknya. Jika program Anda menyalahi konvensi ini ketika menjalankan sebuah tes, maka Anda akan mendapatkan skor 0% untuk tes tersebut. Halaman 2 dari 5

BEADS Instruksi Pemrograman Jika Anda mengumpulkan sebuah kode program, kode program tersebut harus berisi perintah berikut: uses beadslib; Jika Anda mengumpulkan sebuah program C atau C++, kode program tersebut harus berisi baris berikut: #include "beadslib.h" Prototipe Fungsi function getnumquestions():integer C dan C++ int getnumquestions() procedure getquestion(var K:integer, var J:integer) C void getquestion(int *K, int *J) C++ void getquestion(int &K, int &J) procedure answer(x:integer) C dan C++ void answer(int x) Deskripsi Mengembalikan jumlah pertanyaan yang akan ditanyakan ke program Anda. K adalah nomor ban berjalan manik yang dipertanyakan diletakkan di ujung Utara dari UBS. J ditetapkan sebagai nomor penukar. Melaporkan bahwa jawaban dari pertanyaan hasil pemanggilan getquestion terakhir adalah x. Table 1: Library interaksi. Contoh Library dan Program Anda akan diberikan sebuah berkas zip yang berisi kode program dari contoh library dan program. Berkas tersebut berisi tiga direktori pascal, c, dan cpp untuk kode program dalam, C, dan C++, secara berturut-turut. Setiap direktori berisi sebuah kode program dari contoh library, dan kode program dari sebuah program yang memanggil fungsi library dengan urutan yang benar. Untuk, contoh library interaksi berada di unit beadslib, yang kode programnya dapat dilihat di beadslib.pas. Berkas sample.pas berisi sebuah kode program yang menggunakan library dengan benar. Untuk C, contoh library interaksi berada di beadslib.h, yang spesifikasinya dapat dilihat di beadslib.c. Berkas sample.c berisi sebuah kode program yang menggunakan library dengan benar. Untuk C++, contoh library interaksi juga berada di beadslib.h (tapi isi berkasnya tidak sama dengan untuk yang C), yang spesifikasinya dapat dilihat di beadslib.cpp. Berkas sample.cpp berisi sebuah kode program yang menggunakan library dengan benar. Contoh library berperilaku sebagai berikut: Halaman 3 dari 5

BEADS Ketika getnumquestions dari library contoh dipanggil, library tersebut membuka sebuah berkas questions.txt, membaca jumlah pertanyaan dan mengembalikan apa yang dibaca. Ketika getquestion dipanggil, library membaca K dan J dari questions.txt. Ketika answer dipanggil, library mencetak argumen x ke standard output. Library mencetak sebuah pesan kesalahan ke standard output setiap kali sebuah fungsi dipanggil dengan urutan yang salah. Berkas questions.txt memiliki bentuk sebagai berikut. Baris pertama berisi jumlah pertanyaan Q. Setiap baris dari Q baris berikutnya berisi dua bilangan bulat K, nomor dari sebuah ban berjalan, dan J, nomor dari sebuah penukar. Contoh Masukan 5 5 2 4 1 3 3 Contoh isi questions.txt 2 3 4 5 5 (Masukan ini sesuai Gambar 1) Contoh Interaksi Pemanggilan Fungsi getnumquestions(); getquestion(k, J); C getquestion(&k, &J); C++ getquestion(k, J); answer(1); getquestion(k, J); C getquestion(&k, &J); C++ getquestion(k, J); answer(4); Nilai hasil dan penjelasan 2 Dua pertanyaan akan ditanyakan. K=3, J=4 Untuk sebuah manik yang berada di ban 3 dari ujung Utara dari UBS, pada ban mana kah manik tersebut berada setelah semua ban bergerak melewati penukar 4? Setelah setiap manik melewati penukar 4, manik yang ditanyakan berada pada ban 1. K=5, J=5 Untuk sebuah manik yang berada pada ban dari ujung Utara dari UBS, pada ban mana kah manik tersebut berada setelah semua ban bergerak melewati penukar 5? Setelah setiap manik melewati penukar 4, manik yang ditanyakan berada pada ban 1. Halaman 4 dari 5

BEADS Batas Waktu dan Memori Program Anda harus berhenti dalam 2 detik dan tidak menggunakan memori lebih dari 256 MB. Penilaian Nilai dari setiap skenario masukan adalah 100% jika program Anda menuruti konvensi pemanggilan fungsi di atas dan menjawab semua pertanyaan dengan tepat, dan 0% jika tidak. Untuk sebuah kelompok tes bernilai 20 poin, M dan Q paling besar adalah 10.000. Halaman 5 dari 5

ROADS Jalan Kerajaan Asia Baru terdiri dari N desa yang terhubung oleh M jalan. Beberapa jalan terbuat dari batu-batuan, dan lainnya terbuat dari beton. Memelihara jalan-jalan bebas biaya membutuhkan biaya yang besar, dan tampaknya tidak mungkin untuk Kerajaan memelihara setiap jalan. Sebuah rencana pemeliharaan jalan yang baru dibutuhkan. Misalnya, anggap desa-desa dan jalan-jalan di Asia Baru adalah seperti pada Gambar 1a. Jika Raja ingin dua jalan bebatuan bebas biaya, maka Kerjaan dapat menetapkan jalan (1,2), (2,3), (3,4), dan (3,5) bebas biaya seperti pada Gambar 1 b. Rencana ini memenuhi kriteria Raja karena (1) setiap dua desa dihubungkan oleh satu dan hanya satu jalan bebas, (2) ada sesedikit mungkin jalan bebas yang mungkin, dan (3) ada tepat dua jalan bebatuan: (2,3) dan (3,4). 1 1 2 2 3 4 3 4 5 5 (a) (b) Figure 1: (a) Sebuah contoh konfigurasi desa dan jalan di Kerajaan Asia Baru. Garis tebal melambangkan jalan beton, dan garis putus-putus melambangkan garis bebatuan. (b) Sebuah rencana pemeliharaan jalan yang menghasilkan dua jalan bebatuan bebas biaya. Hanya jalan bebas biaya yang ditunjukkan. Task Diberikan deskripsi jalan-jalan di Asia Baru dan jumlah jalan bebatuan yang Raja ingin tetap gratis, tulislah sebuah program yang menentukan jika ada sebuah rencana pemeliharaan jalan yang memenuhi kriteria Raja, dan keluarkan rencana yang valid jika ada. Masukan Baris pertama berisi tiga bilangan bulat dipisahkan oleh sebuah spasi: N, jumlah desa (1 N 20.000), M, jumlah jalan (1 M 100.000), dan K, jumlah jalan bebatuan Raja ingin tetap gratis (0 K N 1). M baris berikutnya mendeskripsikan jalan-jalan di Asia Baru, yang diberi nomor 1 hingga M. Baris ke-(i + 1) menggambarkan jalan i. Setiap baris berisi tiga bilangan bulat dipisahkan spasi: Halaman 1 dari 2

ROADS u i dan v i, dua desa yang dihubungkan oleh Jalan i. Setiap desa diberi nomor 1 sampai dengan N, dan c i, tipe jalan i; c i = 0 jika jalan i adalah jalan bebatuan, c i = 1 jika jalan i terbuat dari beton. Tidak ada lebih dari satu jalan yang menghubungkan sepasang desa. Keluaran Jika tidak ada rencana pemeliharaan jalan yang memenuhi kriteria Raja, program Anda harus mencetak no solution pada baris pertama dari keluaran. Jika ada, maka program Anda harus mengeluarkan rencana pemeliharaan jalan yang valid dengan mendaftarkan jalan-jalan yang tetap bebas biaya, satu jalan per baris. Tulislah baris pada masukan yang menggambarkan sebuah jalan dalam daftar yang Anda buat. Jalan-jalan dapat didaftarkan dengan urutan sembarang. Jika ada lebih dari satu rencana yang valid, Anda dapat mengeluarkan rencana yang mana saja. Contoh Masukan 5 7 2 1 3 0 4 5 1 3 2 0 5 3 1 4 3 0 1 2 1 4 2 1 Contoh Keluaran 3 2 0 4 3 0 1 2 1 5 3 1 (Keluaran ini sesuai dengan Gambar 1b.) (Masukan ini sesuai dengan Gambar 1a.) Batas Waktu dan Memori Program Anda harus berhenti dalam 1 detik dan menggunakan memori tidak lebih dari 128 MB. Penilaian Nilai untuk sebuah skenario masukan adalah 100% jika jawaban yang benar dikeluarkan, dan 0% jika tidak. Untuk sekelompok skenario tes bernilai 20 poin, K bernilai paling besar 10. Halaman 2 dari 2

DNA DNA Salah satu penggunaan komputer yang menarik adalah untuk menganalisa data biologis seperti sekuens DNA. Secara biologis, sebuah rantai DNA adalah sebuah untai nukleotida Adenin, Sitosin, Guanin, dan Timin. Keempat nukleotida direpresentasikan menggunakan karakter A, C, G, dan T. Dengan demikian, sebuah untai DNA dapat direpresentasikan dalam sebuah string dari empat karakter ini. Kita menamakan string tersebut sebagai sebuah sekuens DNA. Mungkin saja para ahli biologi tidak dapat menentukan sejumlah nukleotida dari sebuah rantai DNA. Dalam kasus tersebut, karakter N digunakan untuk mewakili nukleotida yang tidak diketahui pada sekuens DNA dari rantai tersebut. Dengan kata lain N adalah karakter kartu liar (wildcard) dari salah satu karakter dari A, C, G atau T. Kita namakan sebuah sekuens DNA berisi satu atau lebih karakter N sekuens tidak lengkap (incomplete sequence); selain itu, sekuens tersebut disebut sekuens lengkap (complete sequence). Sebuah sekuens lengkap dikatakan setuju dengan sebuah sekuens tidak lengkap jika sekuens lengkap tersebut adalah hasil dari mengganti setiap N di sekuens tidak lengkap tersebut dengan satu dari keempat nukleutida. Misalnya ACCCT setuju dengan ACNNT, tapi AGGAT tidak. Para peneliti pada umumnya mengurutkan keempat nukleotida berdasarkan urutan abjad Latin A sebelum C, C sebelum G, G sebelum T. Sebuah sekuens DNA diklasifikasikan sebagai bentuk-1 jika setiap nukleotida pada sekuens tersebut sama dengan atau muncul sebelum pada urutan abjad dengan nukleotida tepat di sebelah kanannya. Misalnya, AACCGT adalah bentuk-1, tapi AACGTC tidak. Pada umumnya, sebuah sekuens adalah bentuk-j, untuk J > 1, jika sekuens tersebut adalah bentuk-(j 1) atau jika sekuens tersebut merupakan gabungan (concatenation) dari sekuens bentuk- (j 1) dengan sekuens bentuk-1. Misalnya, AACCC, ACACC, dan ACACA adalah bentuk-3, tapi GCACAC dan ACACACA tidak. Para peneliti juga mengurutkan sekuens DNA secara leksikografis, sama seperti cara kita mengurutkan kata-kata pada kamus. Dengan demikian, sekuens bentuk-3 pertama dengan panjang 5 adalah AAAAA dan yang terakhir adalah TTTTT. Sebagai contoh lain, perhatikan sekuens tidak lengkap ACANNCNNG. Tujuh sekuens bentuk-3 pertama yang setuju dengan sekuens tidak lengkap tersebut adalah sebagai berikut: ACAAACAAG ACAAACACG ACAAACAGG ACAAACCAG ACAAACCCG ACAAACCGG ACAAACCTG Tugas Tulislah sebuah program untuk mencari sekuens bentuk-k ke-r yang setuju dengan sekuens tidak lengkap dengan panjang M yang diberikan. Masukan Baris pertama dari masukan berisi tiga bilangan bulat dipisahkan oleh sebuah spasi: M (1 M 50.000), K (1 K 10), dan R (1 R 2 10 12 ). Baris kedua berisi sebuah string dengan panjang Indonesia versi 1.5 Halaman 1 dari 2

DNA M, yang merupakan sebuah sekuens tidak lengkap. Dijamin bahwa banyaknya sekuens bentukk yang setuju dengan sekuens tidak lengkap tersebut tidak lebih dari 4 10 18, sehingga dapat direpresentasikan menggunakan tipe data long long pada C dan C++ atau Int64 pada. Terlebih lagi, R tidak melebihi jumlah sekuens bentuk-k yang setuju dengan sekuens tidak lengkap yang diberikan. Keluaran Pada baris pertama, cetak sekuens bentuk-k ke R yang setuju dengan sekuens tidak lengkap pada masukan. Contoh Masukan 1 9 3 5 ACANNCNNG Contoh Keluaran 1 ACAAACCCG Contoh Masukan 2 5 4 10 ACANN Contoh Keluaran 2 ACAGC Catatan Pemrograman Pada C dan C++, Anda sebaiknya menggunakan tipe data long long. Potongan kode berikut ini menunjukkan bagaimana cara membaca dan menulis sebuah variabel bertipe long long dari dan ke standard input/output. long long a; scanf("%lld",&a); printf("%lld\n",a); Pada, Anda sebaiknya menggunakan Int64. Tidak ada instruksi spesial yang dibutuhkan untuk memanipulasi data dengan tipe ini. Batas Waktu dan Memori Program Anda harus berhenti dalam 1 detik dan tidak menggunakan memori lebih dari 128 MB. Penilaian Skor untuk setiap skenario masukan adalah 100% jika jawaban yang benar dicetak, dan 0% jika tidak. Untuk sekelompok skenario bernilai 20 poin, M paling besar adalah 10. Indonesia versi 1.5 Halaman 2 dari 2