Files
contest/uil/aplus-february-2015/8/Name.java
2020-02-22 05:43:50 -06:00

49 lines
1.6 KiB
Java

import static java.lang.System.out;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
class Main {
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(new File("name.dat"));
while(s.hasNextLine()) {
String operation = s.next();
String input = s.next();
int right = s.nextInt();
int left = s.nextInt();
out.println(String.format(
"%s==>%s", input,
operation.equals("E") ? encrypt(input, right, left) : decrypt(input, right, left)
));
}
}
public static String encrypt(String input, int right, int left) {
right = input.length() / right;
left = input.length() / left;
return leftCircle(rightCircle(reverse(input), right), left);
}
public static String decrypt(String input, int right, int left) {
right = input.length() - (input.length() / right);
left = input.length() - (input.length() / left);
return reverse(rightCircle(leftCircle(input, left), right));
}
public static String rightCircle(String input, int right) {
return input.substring(input.length() - right) + input.substring(0, input.length() - right);
}
public static String leftCircle(String input, int left) {
return input.substring(left, input.length()) + input.substring(0, left);
}
public static String reverse(String input) {
String result = "";
char[] arr = input.toCharArray();
for(int i = arr.length - 1; i >= 0; i--)
result += arr[i];
return result;
}
}