Password

Olimpiade Sains Nasional 2010 pun berakhir, Pak Dengklek hendak pulang. Sayangnya, ia lupa password pintu kamarnya. Sebagai informasi, pintu kamar panitia diberi password khusus untuk alasan keamanan berkas soal dan hasil. Dan lebih uniknya, bukan hanya untuk masuk, untuk keluar pun pintu kamar tersebut meminta password.

Password dalam hal ini terdiri dari tepat 4 buah digit, dan setiap digit adalah bilangan bulat antara 0 sampai dengan 9 (termasuk mungkin 0 atau 9 itu sendiri). Jika seseorang salah menebak password tersebut, maka secara otomatis password tersebut akan mengubah diri menjadi selisih mutlak antara password sebelumnya dengan tebakan yang baru diberikan. Perhitungan selisih mutlak ini dilakukan dengan menganggap setiap password adalah sebuah bilangan bulat. Contoh: password semula adalah 0010 dan password tebakan adalah 0104, maka password pintu kamar Pak Dengklek selanjutnya berubah menjadi 0094; perubahan yang sama akan diperoleh jika password semula adalah 0104 dan sebaliknya tebakan adalah 0010 (ingat selisih mutlak).

Bantulah Pak Dengklek untuk keluar dari kamarnya sehingga ia dapat pulang.

INFORMASI TIPE SOAL

Tipe soal seperti ini biasa disebut "interaktif". Pada soal ini Anda akan berinteraksi dengan program penguji melalui standard input dan standard output. Perhatikan format masukan dan keluaran di bawah ini dengan seksama.

FORMAT MASUKAN DAN KELUARAN

Pada saat program Anda dimulai, mulailah menebak dengan mencetak sebuah password yang terdiri dari empat buah digit bilangan bulat. Selanjutnya, bacalah sebuah kata yang antara lain "terkunci" atau "pulang". Jika kalimat yang Anda baca adalah "pulang", tidak perlu ada kelanjutan dari program Anda (dengan kata lain, program Anda harus berakhir dan tentunya program Anda mendapatkan nilai untuk kasus tersebut). Sedangkan jika kalimat yang Anda baca adalah "terkunci", Anda perlu menebak lagi dan seterusnya. Jika sampai 15 kali Anda menebak belum pernah ada kata "pulang", program Anda akan dihentikan secara paksa oleh program penguji dan tentunya program Anda tidak mendapatkan nilai (atau mendapatkan nilai nol) untuk kasus tersebut.

Petunjuk "bacalah" dan "mencetak" yang dijelaskan di atas dapat Anda lakukan dengan menggunakan perintah standard seperti write, writeln, scanf, printf, dll selayaknya Anda mengerjakan soal biasa. Yang perlu diperhatikan adalah bahwa untuk tipe soal interaktif seperti ini, Anda harus selalu memberikan perintah "fflush(stdout);" (bagi pengguna C/C++) atau "flush(output);" (bagi pengguna PASCAL) setiap kali Anda mencetak keluaran (dengan kata lain, setiap kali ada perintah write/writeln/scanf/printf/dll, tepat di bawahnya harus ada perintah fflush/flush).

Berikut ini adalah contoh kode program dalam bahasa PASCAL yang akan selalu menebak password 2500 sampai mendapatkan kata "pulang":

var hasil:string;
begin
  hasil:='';
  while (hasil<>'pulang') do
  begin
    writeln('2500');
    flush(output);
    readln(hasil);
  end;
end.

Dan berikut ini dalam bahasa C/C++:

char hasil[20];
int main(){
  strcpy(hasil,"");
  while (strcmp(hasil,"pulang")<>0){
    printf("2500\n");
    fflush(stdout);
    gets(hasil);
  }
  return 0;
}

CONTOH INTERAKSI 1

KELUARAN ANDA - KELUARAN PENGUJI
2500
                terkunci
2500
                terkunci
2500
                pulang

CONTOH INTERAKSI 2

KELUARAN ANDA - KELUARAN PENGUJI
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
2500
                terkunci
program dihentikan secara paksa di titik ini karena telah mencoba menebak sebanyak 15 kali

Penjelasan

Pada contoh pertama, password mula-mula adalah 7500, berikutnya berubah menjadi 5000 (7500 - 2500), berikutnya berubah menjadi (5000 - 2500), dan akhirnya terjawab dengan benar.

Sedangkan pada contoh kedua, password mula-mula adalah 1500, berikutnya berubah menjadi 1000 (2500-1500), berikutnya berubah menjadi 1500 lagi (2500-1000), dan seterusnya.