Catatan Kecil Seorang Newbie di Bidang Komputer

Senin, 07 Mei 2012

Praktikum ASD - 3


#403 - Save your BROTHER !!!


Created by : rfim

Save your BROTHER !!!

adikmu sedang bermain sandi-sandi rahasia dengan temannya.tiba - tiba adikmu menangis karena dia dipukuli teman-teman nya yang tidak percaya dengan sandi rahasia yang dibuatnya.
sebagai kakak yang baik kamu berusaha membantu adikmu dengan membuat program dekriptor yang jelas per langkahnya dari enkripsi sandi rahasia yang dibuat adikmu agar teman" adikmu tidak memukuli adikmu lagi

cara enkripsi yang dibuat adikmu adalah :

enkripsi suatu kata dilakukan secara terpisah setiap karakternya. enkripsi yang dilakukan ialah dengan menggeser maju karakter sebanyak c kali.
penggeseran kata itu sendiri dilakukakn sebanyak b kali.

format input :
baris pertama ialah testcase
setiap testcase berisi format input yaitu string s  diikuti a dan b lalu c sebanyak b kali dan seterusnya sampai a = panjang string s

keterangan enkripsi

ABCXYZ
3 3
1 2 3
3 3
2 2 2
berarti 3 kata pertama di enkripsi sebanyak 3 kali penggeseran maju sebanyak b kali
dari setiap c yaitu (1 2 3) sehingga enkripsi data pada tahap ini BCDXYZ -> DEFXYZ -> GHIXYZ
dan belaku pula pada 3 kata sesudahnya yaitu  XYZ : GHIZAB->GHIBCD->GHIDEF

format output:
kata yang telah di enkripsi lalu dipisah satu baris kosong

lalu dekripsi bertahap dimulai a kata dari depan sesuai dengan inputan a sebelumnya
dan penggeseran sebanyak b kali untuk setiap c (b dan c sesuai dengan inputan sebelumnya) dengan urutan yang terbalik

keterangan ouput :
kata yang telah dienkripsi contoh dari yang diatas ialah GHIDEF
yang diikuti n baris pertama ialah dekripsi dari setiap penggeseran sebelumnya
contoh dari yang diatas :
DEFDEF berarti 3 kata pertama digeser mundur sebanyak 3 kali dari hasil enkripsi
BCDDEF berarti 3 kata pertama digeser mundur sebanyak 2 kali dari hasil enkripsi
ABCDEF berarti 3 kata pertama digeser mundur sebanyak 1 kali dari hasil enkripsi
ABCBCD berarti 3 kata selanjutnya digeser mundur sebanyak 2 kali dari hasil enkripsi
ABCZAB berarti 3 kata selanjutnya digeser mundur sebanyak 2 kali dari hasil enkripsi
ABCXYZ berarti 3 kata selanjutnya digeser mundur sebanyak 2 kali dari hasil enkripsi

constraint :

String hanya menngunakan huruf kapital
1<=panjang string <=100
1 <= a <= panjang string
1 <= b <= 10
1 <= c <= 26


nb : tidak boleh menggunakan array dan stl


input

2
ABC
2 1
1
1 1
1
ABCXYZ
3 3
1 2 3
3 3
2 2 2

OUTPUT
ENCRYPT
BCD

DECRYPT
ABD
ABC

ENCRYPT
GHIDEF

DECRYPT
DEFDEF
BCDDEF
ABCDEF
ABCBCD
ABCZAB
ABCXYZ

Problem Requirement
Runtime Limit : 2 seconds
Memory Limit : 32000000 bytes