Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package feb20_Lists_Exercises;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class R1_SoftUniCoursePlanning {
- public static void main(String[] args) {
- @SuppressWarnings("resource")
- Scanner sc = new Scanner(System.in);
- List<String> schedule = Arrays.stream(sc.nextLine().split(", ")).collect(Collectors.toList());
- String input = "";
- while (!"course start".equals(input = sc.nextLine())) {
- String[] command = input.split(":");
- String operation = command[0];
- String lessonTitle = command[1];
- int indexOfLessonTitle = schedule.indexOf(lessonTitle);
- switch (operation) {
- case "Add":
- if (indexOfLessonTitle == -1) {
- schedule.add(lessonTitle);
- }
- break;
- case "Insert":
- int index = Integer.parseInt(command[2]);
- if (indexOfLessonTitle == -1) {
- if (index >= 0 && index < schedule.size()) {
- schedule.add(index, lessonTitle);
- }
- }
- break;
- case "Remove":
- if (indexOfLessonTitle != -1) {
- schedule.remove(indexOfLessonTitle);
- if (indexOfLessonTitle < schedule.size()) {
- String next = schedule.get(indexOfLessonTitle);
- if (next.equals(lessonTitle + "-Exercise")) {
- schedule.remove(indexOfLessonTitle);
- }
- }
- }
- break;
- case "Swap":
- String secondLessonTitle = command[2];
- int indexOfSecondLesson = schedule.indexOf(secondLessonTitle);
- if (indexOfLessonTitle != -1 && indexOfSecondLesson != -1) {
- schedule.set(indexOfLessonTitle, secondLessonTitle);
- schedule.set(indexOfSecondLesson, lessonTitle);
- int maxIndex = Math.max(indexOfLessonTitle, indexOfSecondLesson);
- int minIndex = Math.min(indexOfLessonTitle, indexOfSecondLesson);
- if (maxIndex < schedule.size() - 1) {
- if (indexOfLessonTitle > indexOfSecondLesson) {
- String ex1 = schedule.get(indexOfLessonTitle + 1);
- String ex2 = schedule.get(indexOfSecondLesson + 1);
- if (ex1.equals(lessonTitle + "-Exercise")) {
- if (ex2.equals(secondLessonTitle + "-Exercise")) {
- schedule.set(indexOfLessonTitle + 1, ex2);
- schedule.set(indexOfSecondLesson + 1, ex1);
- } else {
- schedule.add(indexOfSecondLesson + 1, ex1);
- schedule.remove(ex1);
- }
- } else {
- if (ex2.equals(secondLessonTitle + "-Exercise")) {
- schedule.add(indexOfLessonTitle + 1, ex2);
- schedule.remove(schedule.indexOf(lessonTitle + 1));
- }
- }
- }
- } else {
- if (schedule.get(maxIndex).equals(lessonTitle)) {
- String ex = schedule.get(minIndex + 1);
- if (ex.equals(lessonTitle + "-Exercise")) {
- schedule.add(ex);
- schedule.remove(minIndex + 1);
- }
- } else {
- String ex = schedule.get(minIndex + 1);
- if (ex.equals(secondLessonTitle + "-Exercise")) {
- schedule.add(ex);
- schedule.remove(minIndex + 1);
- }
- }
- }
- }
- break;
- case "Exercise":
- int i = schedule.indexOf(lessonTitle);
- String ex = lessonTitle + "-Exercise";
- if (i != -1) {
- schedule.add(i + 1, ex);
- } else {
- schedule.add(lessonTitle);
- schedule.add(ex);
- }
- break;
- }
- }
- for (int i = 0; i < schedule.size(); i++) {
- System.out.println(i + 1 + "." + schedule.get(i));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement