H1.jpg (1294 bytes)H2.jpg (7449 bytes) Logo_ani.gif (8982 bytes)
mainnav.gif (3793 bytes)S3.gif (747 bytes) S4.gif (801 bytes)

bannerAd.gif (3729 bytes)

Mon, 20 May 2002, 15:47:34



Soal-soal lainnya: [Multipal [Kartu ] [Lacak ] [Paste ] [Labirin ]

Imut senang permainan kartu, ia selalu kalah kalau dengan teman-temannya yang beberapa tahun lebih tua darinya

MENGATUR BEBEK

 

Pak Dengklek berternak bebek. Ia memiliki sejumlah varietas (jenis) bebek yang ia ternakan. Jumlah bebek setiap varietas persis sama. Suatu hari Pak Dengklek hendak pergi mengangon para bebek. Bebek-bebek jika diangon suka berjalan membentuk barisan panjang satu-satu. Para bebek baru mau berjalan kalau barisan mereka sudah berada dalam pengurutan yang benar. Karena selama ini Pak Dengklek terlalu memanja para bebek itu, mereka menjadi malas untuk mengatur diri sendiri dan mereka menunggu diatur oleh Pak Dengklek. Pak Dengklek mengatur urutan barisan dengan mengangkat dan menyisipkan bebek-bebek pada urutan yang seharusnya.

Para bebek mempunyai aturan pengurutan barisan yang unik. Bebek-bebek dari varietas yang sama selalu berada dalam satu berderetan dan tidak mau terpisahkan, jadi selalu ingin berurutan. Dalam setiap varietasnya, bebek-bebek berbaris dari yang terkecil ke yang terbesar. Urutan antara varietas dalam barisan tidaklah penting. Berhubung hari sudah siang, Pak Dengklek harus mengatur bebek-bebek sesegera mungkin sehingga ia perlu urutan pemindahan sesedikit mungkin. Satu kali pemindahan adalah menarik mengangkat satu bebek (otomatis bebek-bebek di belakangnya maju mengisi ruang yang ditinggalkan) dan menyisipan di tempat baru (otomatis bebek-bebek di belakangnya mundur memberi ruang untuk ditempati).

Tuliskan program BEBEK.PAS yang dapat menemukan jumlah langkah pemindahan minimal untuk mengurutkan para bebek (ingat sebelumnya para bebek sudah berbaris yang mungkin belum terurut).

 

Format Masukan

 

Masukan adalah file bernama BEBEK.IN. Baris pertama berisi dua integer C dan N yang dipisahkan oleh satu spasi. C adalah jumlah varietas bebek (1 ≤ C ≤ 4), dan N adalah jumlah bebek dari setiap varietas (1 ≤ N ≤ 100).

Setiap dari C*N baris berikutnya terdapat pasangan dua bilangan integer X dan Y, 1 ≤ XC, 1 ≤ YN, yang dipisahkan oleh satu spasi. X menyatakan nomor varietas dan Y menyatakan ukuran badan bebek. Urutan baris sesuai dengan urutan bebek dalam barisan mula-mula.

Tidak ada dua bebek dari varietas yang sama memiliki ukuran badan yang sama (dua baris memiliki data X dan Y yang sama).

 

Format Keluaran

 

Keluaran adalah file BEBEK.OUT. Keluaran hanya berisi satu bilangan yang menyatakan jumlah paling sedikit pemindahan bebek untuk menyusun para bebek sesuai dengan urutan yang dikehendaki sehingga mereka mau berjalan.

 

Contoh-contoh

 

BEBEK.IN

2 2

2 1

1 2

1 1

2 2

 

BEBEK.OUT

2

 

 

BEBEK.IN

4 1

2 1

3 1

1 1

4 1

 

BEBEK.OUT

0

 

 

BEBEK.IN

3 2

3 2

2 2

1 1

3 1

2 1

1 2

 

BEBEK.OUT

2