Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- // Shifting Compartments - JAVA
- import java.util.*;
- public class Test {
- static Scanner sc = new Scanner(System.in);
- public static void main(String[] args) {
- int n = sc.nextInt();
- int q = sc.nextInt();
- String str = sc.next();
- ArrayList<Integer> l = new ArrayList<>();
- ArrayList<Integer> r = new ArrayList<>();
- ArrayList<Integer> k = new ArrayList<>();
- for(int i=0; i < q ;i++){
- l.add(sc.nextInt());
- r.add(sc.nextInt());
- k.add(sc.nextInt());
- }
- System.out.println(shiftingCompartments(n, q, str, l, r, k));
- }
- public static String shiftingCompartments(int n, int q, String s, ArrayList<Integer> l, ArrayList<Integer> r, ArrayList<Integer> k){
- char[] str = s.toCharArray();
- for(int i=0; i < q; i++){
- cycle(str, l.get(i), r.get(i), k.get(i));
- }
- return String.valueOf(str);
- }
- public static void myReverse(char[] str, int i, int j){
- while(i < j){
- char temp = str[i];
- str[i] = str[j];
- str[j] = temp;
- i++;
- j--;
- }
- }
- public static void cycle(char[] str, int l, int r, int k){
- int n = r-l+1;
- k = k%n;
- myReverse(str, l, l+n-k-1);
- myReverse(str, l+n-k, r);
- myReverse(str, l, r);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement