Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1.  
  2. Roda Gigi
  3.  
  4. time limit: 1 seconds
  5.  
  6. memory limit: 32 megabytes
  7.  
  8. input: standard input
  9.  
  10. output: standard output
  11.  
  12. Vincent baru-baru ini memulai usaha baru sebagai seorang pengusaha bengkel. Ketertarikannya terhadap mesin bermotor, membuat dia akhirnya memutuskan untuk membuka usaha tersebut. Sebagai pengusaha baru, tentu Vincent membutuhkan karyawan dalam membantu tugasnya. Namun karena Vincent belum memiliki uang yang cukup banyak, akhirnya Vincent mengangkat anda sebagai karyawan satu-satunya.
  13.  
  14. Dengan bermodalkan kenalan dekat, akhirnya pelanggan pertama datang. Pelanggan ini mempunyai mesin dengan N buah roda gigi (gear) yang tersusun berderet dan bersentuhan dari kiri ke kanan. Roda gigi ini memiliki diameter yang sama, serta jumlah gerigi yang sama. Permasalahannya adalah, terdapat beberapa roda gigi yang berputar tidak sesuai arahnya ketika mesin dinyalakan.
  15.  
  16. Setiap roda gigi bisa berputar dalam dua arah: searah jarum jam (CW: clockwise) dan berlawanan dengan arah jarum jam (CCW: counter clockwise). Jika roda gigi pertama berputar ke arah CW dan roda gigi kedua juga berputar ke arah CW, maka kedua roda gigi tersebut akan tersendat dan mesin tersebut tidak akan jalan. Begitu juga sebaliknya, jika kedua roda gigi yang bersebelahan berputar ke arah CCW, maka kedua roda gigi tersebut juga akan tersendat. Mesin tersebut dapat bekerja dengan benar hanya jika setiap roda gigi yang bersebelahan beputar ke arah yang berbeda. Gambar berikut menjelaskan bagaimana keadaan dua roda gigi yang bersebelahan jika arah putarannya berbeda (tidak tersendat).
  17.  
  18. Kalian diberikan N buah roda gigi dengan kondisi berputar dari masing masing roda gigi ketika mesin dinyalakan. Bantu Vincent menghitung berapa roda gigi minimum yang harus Vincent ubah putarannya agar mesin tersebut berjalan secara normal.
  19.  
  20. Input
  21.  
  22. Baris pertama berisi sebuah bilangan T (T ≤ 100) yang menyatakan banyaknya kasus yang harus ditangani. Untuk setiap kasus, berisi sebuah bilangan N (1 ≤ N ≤ 1.000) yang menyatakan jumlah roda gigi. Baris berikutnya berisi string dengan panjang N yang berisi karakter 'R' yang menyatakan roda gigi tersebut berputar searah jarum jam (CW), atau 'L' yang menyatakan roda gigi tersebut berputar berlawanan dengan arah jarum jam (CCW).
  23.  
  24. Output
  25.  
  26. Untuk setiap kasus, cetak "Kasus #K: M" dimana K adalah nomor kasus dimulai dari 1, dan M adalah jumlah roda gigi minimum yang harus Vincent ubah putarannya.
  27.  
  28. Sample Tests
  29. Input
  30.  
  31. 3
  32. 2
  33. LR
  34. 2
  35. LL
  36. 3
  37. LLL
  38.  
  39. Output
  40.  
  41. Kasus #1: 0
  42. Kasus #2: 1
  43. Kasus #3: 1
  44.  
  45. Notes
  46.  
  47. Penjelasan contoh kasus 1:
  48.  
  49. Ada dua roda gigi yang bersebelahan dan arah putaran mereka berbeda, sehingga tidak perlu ada perubahan
  50.  
  51. Penjelasan contoh kasus 2:
  52.  
  53. Vincent dapat mengubah putaran pada roda gigi pertama menjadi CW/R – RL, ATAU mengubah putaran roda gigi kedua menjadi CW/R – LR.
  54.  
  55. Penjelasan contoh kasus 3:
  56.  
  57. Vincent harus mengubah putaran pada roda gigi kedua menjadi CW/R – LRL. Vincent juga bisa mengubah putaran pada roda gigi pertama dan ketiga menjadi CW/R – RLR, agar mesin tersebut bekerja; namun cara ini membutuhkan 2 roda gigi untuk diubah putarannya.
  58.  
  59.  
  60. var
  61. n,i,r,j,has:integer;
  62. s:ansistring;
  63. begin
  64. readln(n);
  65. for j:=1 to n do
  66. begin
  67. readln(r);
  68. readln(s);
  69. if r > 2 then
  70. for i:=2 to length(s)-1 do
  71. begin
  72. if length(s) >=3 then begin
  73. if (s[i]=s[i-1]) and (s[i]=s[i+1]) then begin inc(has); s[i]:='a'; end;
  74. end
  75. else if length(s) < 3 then begin
  76. if s[i] = s[i-1] then inc(has);
  77. end;
  78. end;
  79. writeln('Kasus #',j,': ',has);
  80. end;
  81. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement