Chaekyunx’s Weblog “simple informatics cabin”

Apa tuh parade lampu?????? penasaran ya???

nie soal lengkapnya,….

Ehya, soal nie pernah keluar di OSN, sebelum itu pernah dibuat juga di lomba IOI’98

Nama Soal : Parade Lampu
Kategori : Sedang
Problem Setter : Rully

Deretan lampu warna-warni dipasang untuk memeriahkan acara pesta.
Jumlah lampu yang dipasang sebanyak N yang diberi nomor 1 sampai
dengan N. Lampu-lampu tersebut terhubung pada rangkaian pengendali yang
mempunyai 4 buah tombol. Masing-masing tombol tersebut berfung-si
sebagai berikut :
Tombol 1 : Jika tombol ini ditekan, maka semua lampu yang terhubung
akan berubah statusnya. Artinya, lampu yang semula
MENYALA akan PADAM, sedang lampu yang semula
PADAM akan MENYALA.
Tombol 2 : Jika tombol ini ditekan, maka semua lampu yang bernomor
ganjil akan berubah statusnya.
Tombol 3 : Jika tombol ini ditekan, maka semua lampu yang bernomor
genap akan berubah statusnya.
Tombol 4 : Jika tombol ini ditekan, maka semua lampu yang bernomor
3K+1 akan berubah statusnya. K adalah bilangan bulat ≥ 0.
Pada rangkaian pengendali, terdapat counter C yang mencatat banyaknya
penekanan tombol yang telah dilakukan. Ketika acara dimulai, kondisi semua
lampu MENYALA dan counter C diset 0 (nol). Untuk menyatakan status
lampu yang MENYALA, digunakan nilai 1 (satu). Sedangkan untuk lampu
yang PADAM, digunakan nilai 0 (nol).
Buatlah program untuk menentukan semua konfigurasi akhir yang
mungkin dari status semua lampu sebanyak N tersebut berdasarkan
informasi yang diberikan. Informasi yang diberikan meliputi nilai akhir counter
C serta status akhir dari sebagian lampu. Semua konfigurasi akhir yang
mungkin tersebut tidak diperbolehkan berulang.
INPUT
Input terdiri atas 4 baris. Baris pertama menyatakan banyaknya N buah lampu.
Baris kedua menyatakan nilai akhir counter C. Batasan nilai N dan C adalah
sebagai berikut : 10 ≤ N ≤ 100, 1 ≤ C ≤ 10000. Baris ketiga, berisi daftar
nomor lampu yang MENYALA pada akhir acara. Setiap nomor dipisah-kan
oleh spasi dan diakhir baris diberikan nilai -1. Baris keempat, berisi daftar
nomor lampu yang PADAM pada akhir acara. Setiap nomor dipisahkan oleh
spasi dan diakhir baris diberikan nilai -1.
OUPUT
Output berisi semua konfigurasi akhir yang mungkin dari status semua lampu
sebanyak N tersebut berdasarkan informasi yang diberikan. Tidak
diperbolehkan adanya konfigurasi yang berulang. Tiap konfigurasi yang
mungkin harus dituliskan pada baris yang berbeda. Urutan konfigurasi boleh
sebarang.
CONTOH INPUT
10
1
-1
7 -1
Pada kasus diatas, terdapat 10 lampu dan hanya sekali terjadi penekanan
tombol. Hanya diketahui informasi bahwa, lampu nomor 7 statusnya PADAM
diakhir acara.
CONTOH OUTPUT
0000000000
0110110110
0101010101
Pada kasus diatas, ada 3 kemungkinan konfigurasi lampu diakhir acara,
yaitu :
• Semua lampu PADAM.
• Lampu nomor 1, 4, 7 dan 10 PADAM; sedangkan LAMPU 2, 3, 5, 6, 8
dan 9 MENYALA.
• Lampu nomor 1, 3, 5, 7 dan 9 PADAM, sedangkan LAMPU 2, 4, 6, 8
dan 10 MENYALA.

nah,….silahkan di bwt latihan dulu ya….

ayo temukan!!!!!!!!!!!!!!

<!– /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:””; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:”Times New Roman”; mso-fareast-font-family:”Times New Roman”;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} –>


/* Style Definitions */
table.MsoNormalTable
{mso-style-name:”Table Normal”;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:””;
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:”Times New Roman”;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}

import javax.swing.*;

public class cobaprima

{

public static void main( String args[] ) {

int input1;

int input2;

int array [];

int isi=0;

array= new int [1000];

int i=0;

String input1String;

String input2String;

String keluaran=””;

JOptionPane.showMessageDialog

(null,”bilangan I < bilangan II”+”\n”+” 2 <= bilangan I <= bilangan II <= 10000″, “Aturan”,JOptionPane.INFORMATION_MESSAGE);

input1String = JOptionPane.showInputDialog

( “Masukkan bilangan bulat pertama : ” );

input1=Integer.parseInt( input1String );

input2String = JOptionPane.showInputDialog

( “Masukkan bilangan bulat kedua : ” );

input2=Integer.parseInt( input2String );

if (input2-input1<50&&2<=input1&&input1<=input2&&input2<=10000)

{

for ( int bil=input1;bil<=input2;bil++)

{

int prima=1;

if (bil==2)

{

prima=1;

}

for (int bagi=2;bagi<=bil/2;bagi++)

{

if( bil%bagi==0)

{

prima=0;

}

}

if (prima==1)

{

array[i]=bil;

i++;

}

}

for (int x=0;x<i;x++)

{

for (int y=0;y<i;y++)

{

String temp = Integer.toString(array[x])+Integer.toString(array[y]);

int angka = Integer.parseInt(temp);

int prima=1;

for (int bagi=2;bagi<=angka/2;bagi++)

{

if( angka%bagi==0)

{

prima=0;

}

}

if (prima==1)

{

// System.out.println(array[x]+” “+array[y]);

//isi=1;

keluaran += array[x]+” “+array[y]+”\n”;

isi=1;

}

}

}

if (isi!=1)

{

//System.out.println(“TIDAK ADA”);

JOptionPane.showMessageDialog

(null,”TIDAK ADA”, “Results”,JOptionPane.INFORMATION_MESSAGE);

}

else

{

keluaran = keluaran + “\n”;

JTextArea outputArea = new JTextArea ();

outputArea.setText(keluaran);

JOptionPane.showMessageDialog(null, outputArea, “results”,JOptionPane.INFORMATION_MESSAGE);

}

}

else

{

JOptionPane.showMessageDialog

(null,”MASUKKAN ANGKA YANG BENAR”, “Peringatan”,JOptionPane.INFORMATION_MESSAGE);

}

System.exit (0);

}

}

di coba ndiri yach,…

nie ngerjainnya ampe malem bgt, pulang dari kampus udah sepiiiiiiiiiii bnaget jalannya,.udah berkabut pula,…

hiii ngeri!!!!


v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
<!– /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:””; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:”Times New Roman”; mso-fareast-font-family:”Times New Roman”;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} –>


/* Style Definitions */
table.MsoNormalTable
{mso-style-name:”Table Normal”;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:””;
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:”Times New Roman”;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}

Tersebutlah seorang raja Tampan dari Kerajaan Cakep. Pada suatu hari Raja Tampan mengajak kesepuluh prajuritnya untuk berburu rusa untuk membuat sepatu barunya. Pada saat di tengah hutan, rombongan raja tersesat. Karena itulah raja harus mengirim pesan supaya ada yang datang menjemput. Namun musuh raja Tampan mengetahui hal tersebut dan ingin memanfaatkan keadaan untuk membunuh raja Tampan. Agar tak diketahui Raja Ugli, raja tampan dan prajuritnya harus mngirim pesan secara rahasia berupa kode-kode. Kode-kodenya adalah 1, 2, 3, 4, 1&2, 1&3, 1&4, 2&3, 2&4, dan 3&4 dan harus diteriakkan secara berulang-ulang. Namun penerima pesan di Kerajaan Cakep mengangkat bendera dan kode-kodenya berubah menjadi desimal 1 sampai 10. Buatlah rangkaian simulasiya!

( hint : tipa angka diwakili lampu )

ni soal bwt UTS yg take home, ada 2 sih sebenernya,…tapi yang ini dulu deh,..lebih gampang,..

hehehe……

Kalo misalkan ada 2 bilangan prima A=2 dan B=3, naka Aditempelkan pada B =AB=23 juga prima,.

tapi misalkan A=2 dan B=5, AB=25 bukan bilangan prima,…

nah, tugasnya adalah menampilkan bilangan prima setelah ditempelkan itu,.Inputan 2 bilangan bulat M dan N, M < N. 2<= M <= A <= B <= N <= 10.000, untuk menguragi running time program, dibatasi N-M <=50.

Outputnya nanti dua bilangan prima dipisahkan spasi yang klo digabung juga prima,.

daripada bingung, gini contohnya :

Input = 2 10

Output = 2 3; 3 7; 4 3; 4 7; 7 3;

ehya,.ternyata kmaren program penampil bulangan pascal pake array masih ada yang salah,..kan masih muncul 000000,..

nah,.ini baru sempet nyari gmana yg bener,…

source code bilangan pascal di java,..

import javax.swing.*;

public class PASCALARRAY {

public static void main(String args[])

{

int i;

int j;

int n;

int pascal[][];

pascal = new int [100][100];

String masukkan;

String keluaran=”Segitiga Pascal Array\n\n”;

masukkan = JOptionPane.showInputDialog(”Inputkan bilangan asli : “);

n=Integer.parseInt(masukkan);

for (i=0;i<n;i++)

{

for (j=0;j<n;j++)

{

if (j==0||i==j)

{

pascal[i][j]=1;

}

else if (i>j)

{

pascal [i][j]=pascal[i-1][j-1]+pascal[i-1][j];

}

else

{

pascal[i][j]=\n;

}

}

}

for (int baris=0;baris<n;baris++)

{

for(int kolom=0;kolom<=baris;kolom++)

keluaran += pascal [baris][kolom]+”\t”;

keluaran = keluaran + “\n\n”;

}

JTextArea outputArea = new JTextArea ();

outputArea.setText(keluaran);

JOptionPane.showMessageDialog(null, outputArea, “Segitiga Pascal Array”,JOptionPane.DEFAULT_OPTION);

System.exit(0);

}

}

nah,.ini inyaAllah bener,…

 Buatlah rangkaian sequential 4 bit untuk menampilkan bilangan kelipatan 3 ( 3, 6, 9, 12, 15 )dimana bila bilangan yang ditampilkan genap, lampu indikator akan menyala!

 

Present State

Next State

 

A

B

C

D

A

B

C

D

L

0

0

0

0

0

0

1

1

0

0

0

0

1

x

x

x

x

x

0

0

1

0

x

x

x

x

x

0

0

1

1

0

1

1

0

1

0

1

0

0

x

x

x

x

x

0

1

0

1

x

x

x

x

x

0

1

1

0

1

0

0

1

0

0

1

1

1

x

x

x

x

x

1

0

0

0

x

x

x

x

x

1

0

0

1

1

1

0

0

1

1

0

1

0

x

x

x

x

x

1

0

1

1

x

x

x

x

x

1

1

0

0

1

1

1

1

0

1

1

0

1

x

x

x

x

x

1

1

1

0

x

x

x

x

x

1

1

1

1

0

0

1

1

0

 

 

 

 

 

C

 

 

0

x

0

x

 

x

x

x

1

B

A

1

x

0

x

x

1

x

x

 

 

 

D

 

 

A               F(A) = AC’ + CD’

                                 = ((AC’)’(CD’))

 

 

 

 

 

 

 

 

 

C

 

 

0

x

1

x

 

x

x

x

0

B

A

1

x

0

x

x

1

x

x

 

 

 

D

 

 

B    F(B) = AC’ + B’C

                    = ((AC’)’(B’C))

 

 

 

 

 

 

 

 

C

 

 

1

x

1

x

 

x

x

x

0

B

A

1

x

1

x

x

0

x

x

 

 

 

D

 

 

C   F(C) = AB + A’B’      

                    = ((AB)’(A’B’))

 

 

 

 

 

 

 

D              

 

 

C

 

1

x

0

x

 

x

x

x

1

B

A

1

x

1

x

x

0

x

x

 

 

 

D

 

 

                  F(D) = B+D’

                                 = (B’D)’

 

 

 

 

 

 

L                                                                            F(L) =  AB’ + A’D                             

 

 

C

 

 

0

x

1

x

 

x

x

x

0

B

A

0

x

0

x

x

1

x

x

 

 

 

D

 

 

                                   =  ( B’ + D )

                                   =  (BD’)’

 

 

 

 

 

 

·        State Equation atau Transition Equation menjelaskan sifat – sifat dari rangkaian sequential pada sebuah flip flop pada saat transisi atau perubahan. State Equation merupakan persamaan Boolean  yang dibentuk oleh fungsi yang sekarang dan juga input yang membentuk rangkaian tersebut dikarenakan pernyataan awalnya ditambah 1.

                         

                          A(t+1) = A(t)x(t)+B(t)x(t)

 

                          B(t+1) = A’(t)x(t)’

 

·        State Table atau Transition Table adalah table yang menyajikan 4 data berurutan, yaitu persamaan awal, input, persamaan lanjutan, dan output

 

Present

State

Input

Next

State

Output

A

B

X

A

B

Y

0

0

0

0

0

0

0

0

1

0

1

0

0

1

0

1

0

0

0

1

1

1

1

0

1

0

0

0

0

1

1

0

1

1

0

0

1

1

0

0

0

1

1

1

1

1

0

0

 

 

 

·        State Diagram adalah grafik yang dibuat dari persamaan – persamaan yang ada pada state table. Sebuah persamaan disimbolkan dengan lingkaran, dan perubahan dari persamaan satu ke persamaan lanjutan disimbolkan dengan anak panah.

 

  

·        State Reduction mengkhususkan untuk menemukan cara penyederhanaan suatu fungsi Boolean yang telah disajikan dalam bentuk state table sebelumnya, dengan cara tidak merubah external input-output yang penting

 

Present State

Next State

Output

X=0

X=1

X=0

X=1

a

a

b

0

0

b

c

d

0

0

c

a

d

0

0

d

e

f

0

1

e

a

f

0

1

f

g

f

0

1

g

a

f

0

1

 

 

 

 

 

 

 

 

 

 

 

 

Present State

Next State

Output

X=0

X=1

X=0

X=1

a

a

b

0

0

b

c

d

0

0

c

a

d

0

0

d

e

d

0

1

e

a

d

0

1

 

Present State

Next State

Output

X=0

X=1

X=0

X=1

a

a

b

0

0

b

c

d

0

0

c

a

d

0

0

d

e

f

0

1

e

a

f

0

1

f

e

f

0

1

 

 

 

 

 

 

 

 

 

 

 

 

·        State Assignment  adalah pemberian tanda atau nama yang tidak akan dipakai oleh jenis data yang lain, dengan kata lain hal tersebut bersifat unik,.

State

Binary

Gray Code

One-Hot

a

000

000

00001

b

001

001

00010

c

010

011

00100

d

011

010

01000

e

100

110

10000

 

Preset State

Next State

Output

X=0

X=1

X=0

X=1

000

000

001

0

0

001

010

011

0

0

010

000

011

0

0

011

100

011

0

1

100

000

011

0

1