Ready for Challenge?
Batas Waktu | 1 detik |
Batas Memori | 32 MB |
Deskripsi
Diberikan sebuah pertanyaan, jawablah dengan YA atau TIDAK.
Format Masukan
Satu baris string S yang merupakan sebuah pertanyaan.
Format Keluaran
Satu baris berisi jawaban dari pertanyaan yang diajukan. Jawaban berupa YA atau TIDAK.
Contoh Masukan 1
Apakah Ammar ganteng?
Contoh Keluaran 1
YA
Contoh Masukan 2
Apakah ada orang yang lebih ganteng daripada Ammar?
Contoh Keluaran 2
TIDAK
Contoh Masukan 3
Apakah semua orang ganteng?
Contoh Keluaran 3
TIDAK
Contoh Masukan 4
Apakah hanya ada satu orang di muka bumi yang memang ganteng?
Contoh Keluaran 4
YA
Contoh Masukan 5
Apakah kegantengan itu bersifat mutlak?
Contoh Keluaran 5
YA
Contoh Masukan 6
Apakah orang yang belum ganteng dapat menjadi ganteng jika berhasil menyelesaikan soal ini?
Contoh Keluaran 6
YA
Contoh Masukan 7
Apakah orang yang tidak berhasil menyelesaikan soal ini juga ganteng?
Contoh Keluaran 7
TIDAK
Contoh Masukan 8
Apakah setiap orang memang diharuskan menjadi ganteng?
Contoh Keluaran 8
YA
Contoh Masukan 9
Apakah kegantengan itu hanya sebatas permainan?
Contoh Keluaran 9
TIDAK
Contoh Masukan 10
Apakah semua ini serius?
Contoh Keluaran 10
TIDAK
Batasan
- Panjang string S minimal 1 dan tidak lebih besar daripada 1000.
- Karakter pada string S hanya berupa huruf kecil, huruf kapital, spasi, dan tanda tanya.
- Dijamin bahwa string S tidak memiliki spasi pada awal maupun akhir string dan tidak terdapat adanya 2 spasi yang letaknya bersebelahan.
- Dijamin bahwa terdapat tepat satu karakter tanda tanya pada S dan terletak di akhir string.
Perhatikan setiap case yang ada, YA atau TIDAK jawaban terlihat dari banyaknya kata pada setiap kalimat/case yang diberikan.
Jika jumlah kata pada case yang diberikan ganjil maka keluaran YA
Jika jumlah kata pada case yang diberikan genap maka keluaran TIDAK
Namun hal yang membuang-buang waktu jika harus membuat algoritma penghitung kata lagi. Cara yang tepat adalah dengan memperhatikan Batasan yang diberikan.
Dikatakan bahwa
- Panjang string S minimal 1 dan tidak lebih besar daripada 1000.
- Karakter pada string S hanya berupa huruf kecil, huruf kapital, spasi, dan tanda tanya.
- Dijamin bahwa string S tidak memiliki spasi pada awal maupun akhir string dan tidak terdapat adanya 2 spasi yang letaknya bersebelahan.
- Dijamin bahwa terdapat tepat satu karakter tanda tanya pada S dan terletak di akhir string.
Jika jumlah kata genap maka jumlah spasi ganjil dan sebaliknya
Hal yang dilakukan untuk menyelesaikan kasus ini adalah memperhatikan setiap karakter yang diinput. Dari batasan didapat bahwa setiap kalimat selalu diakhiri dengan tanda tanya (?)
untuk sementara dapat dibuat code sbb
repeat
read(c);
if(c=' ') then <kosong>
until(c='?');
Masih ada code yang kosong. Yang akan diisi pada <kosong> adalah banyaknya spasi yang ada pada kalimat.
Sebagian orang akan berpikir mengisi bagian kosong diatas dengan
i:=i+1; atau inc(i);
Mari kita analisa keluaran akhir i
Jika i=1,3,5,7,9,11,dst maka cetak TIDAK dan i=2,4,6,8,10,dst maka cetak YA.
Untuk lebih menghemat penggunaan memori maka cara diatas dapat diganti dengan penggunaan booelan. Caranya dengan mengganti keaadaan boolean setiap spasi ditemukan.
Mis. "
Contoh Masukan 1
Apakah Ammar memang ganteng?Kita misalkan booelan b diinisialkan bernilai TRUE
ketika spasi pertama ditemukan ubah menjadi FALSE
ketika spasi kedua ditemukan ubah menjadi TRUE
ketika spasi ketiga ditemukan ubah menjadi FALSE
Didapat jika hasil akhir booelan FALSE maka jumlah spasi ganjil dan sebaliknya
sehingga bagian <kosong> dapat diisi dengan b:=not(b);
maka code sementara