View difference between Paste ID: cVjdZwEU and iYvv21RR
SHOW: | | - or go back to the newest paste.
1-
import java.util.*;
1+
    import java.util.Arrays;
2-
import java.util.stream.Collectors;
2+
    import java.util.List;
3
    import java.util.Scanner;
4-
public class demo {
4+
    import java.util.stream.Collectors;
5-
    public static void main(String[] args) {
5+
6-
        Scanner scanner = new Scanner(System.in);
6+
    public class SoftUniCoursePlanning {
7-
        List<String> schedule = Arrays.stream(scanner.nextLine().split(", ")).collect(Collectors.toList());
7+
        public static void main(String[] args) {
8
            Scanner scanner = new Scanner(System.in);
9-
        String input = scanner.nextLine();
9+
            List<String> schedule = Arrays.stream(scanner.nextLine().split(", ")).collect(Collectors.toList());
10
11-
        while(!input.equals("course start")) {
11+
            String input = scanner.nextLine();
12-
            String [] tokens = input.split(":");
12+
13-
            String command = tokens[0];
13+
            while(!input.equals("course start")) {
14-
            String lessonTitle = tokens[1];
14+
                String[] tokens = input.split(":");
15-
            switch(command) {
15+
                String command = tokens[0];
16-
                case "Add":
16+
                String lessonTitle = tokens[1];
17-
                    //"Add:Databases" -> ["Add", "Databases"]
17+
                switch(command) {
18-
                    if(!schedule.contains(lessonTitle)) {
18+
                    case "Add":
19-
                        schedule.add(lessonTitle);
19+
                        //"Add:Databases" -> ["Add", "Databases"]
20-
                    }
20+
                        if(!schedule.contains(lessonTitle)) {
21-
                    break;
21+
                            schedule.add(lessonTitle);
22-
                case "Insert":
22+
23-
                    //Insert:Arrays:0 -> ["Insert", "Arrays", "0"]
23+
                        break;
24-
                    int index = Integer.parseInt(tokens[2]);
24+
                    case "Insert":
25-
                    if(!schedule.contains(lessonTitle)) {
25+
                        //Insert:Arrays:0 -> ["Insert", "Arrays", "0"]
26-
                        schedule.add(index, lessonTitle);
26+
                        int index = Integer.parseInt(tokens[2]);
27-
                    }
27+
                        if(!schedule.contains(lessonTitle)) {
28-
                    break;
28+
                            schedule.add(index, lessonTitle);
29-
                case "Remove":
29+
30-
                    if(schedule.contains(lessonTitle)) {
30+
                        break;
31-
                        schedule.remove(lessonTitle);
31+
                    case "Remove":
32-
                    }
32+
                        if(schedule.contains(lessonTitle)) {
33-
                    int indexLesson = schedule.indexOf(lessonTitle);
33+
                            schedule.remove(lessonTitle);
34-
                    if(schedule.get(indexLesson + 1).equals(lessonTitle+"-Exercise")) {
34+
35-
                        schedule.remove(indexLesson + 1);
35+
                        int indexLesson = schedule.indexOf(lessonTitle);
36-
                    }
36+
                        if(schedule.get(indexLesson + 1).equals(lessonTitle+"-Exercise")) {
37-
                    break;
37+
                            schedule.remove(indexLesson + 1);
38-
                case "Swap":
38+
39-
                    //Arrays, Lists, Methods, Databases, Databases-Exercise
39+
                        break;
40-
                    //Swap:Lists:Databases
40+
                    case "Swap":
41-
                    String lessonTitle2 = input.split(":")[2];
41+
                        //Arrays, Lists, Methods, Databases, Databases-Exercise
42-
                    if (schedule.contains(lessonTitle) && schedule.contains(lessonTitle2)) {
42+
                        //Swap:Lists:Databases
43-
                        int lesson1Index = schedule.indexOf(lessonTitle);
43+
                        String lessonTitle2 = input.split(":")[2];
44-
                        int lesson2Index = schedule.indexOf(lessonTitle2);
44+
                        if (schedule.contains(lessonTitle) && schedule.contains(lessonTitle2)) {
45-
                        schedule.set(lesson1Index, lessonTitle2);
45+
                            int lesson1Index = schedule.indexOf(lessonTitle);
46-
                        schedule.set(lesson2Index, lessonTitle);
46+
                            int lesson2Index = schedule.indexOf(lessonTitle2);
47
                            schedule.set(lesson1Index, lessonTitle2);
48-
                        String exOne = lessonTitle + "-Exercise";
48+
                            schedule.set(lesson2Index, lessonTitle);
49-
                        String exTwo = lessonTitle2 + "-Exercise";
49+
50-
                        if (schedule.contains(exOne)) {
50+
                            String exOne = lessonTitle + "-Exercise";
51-
                            schedule.remove(schedule.indexOf(exOne));
51+
                            String exTwo = lessonTitle2 + "-Exercise";
52-
                            schedule.add(schedule.indexOf(lessonTitle + 1), exOne);
52+
                            if (schedule.contains(exOne)) {
53
                                schedule.remove(schedule.indexOf(exOne));
54-
                        if (schedule.contains(exTwo)) {
54+
                                schedule.add(schedule.indexOf(lessonTitle + 1), exOne);
55-
                            schedule.remove(schedule.indexOf(exTwo));
55+
                            }
56-
                            schedule.add(schedule.indexOf(lessonTitle2) + 1, exTwo);
56+
                            if (schedule.contains(exTwo)) {
57
                                schedule.remove(schedule.indexOf(exTwo));
58-
                    }
58+
                                schedule.add(schedule.indexOf(lessonTitle2) + 1, exTwo);
59-
                    break;
59+
                            }
60-
                case "Exercise":
60+
61-
                    //упражнение -> Objects-Exercise
61+
                        break;
62-
                    //[Data Types, Objects, Lists]
62+
                    case "Exercise":
63-
                    String exercise = lessonTitle + "-Exercise";
63+
                        //упражнение -> Objects-Exercise
64-
                    //слагаме упражнение ако има лекция и го няма
64+
                        //[Data Types, Objects, Lists]
65-
                    int indexLessonTitle = schedule.indexOf(lessonTitle);
65+
                        String exercise = lessonTitle + "-Exercise";
66-
                    if(schedule.contains(lessonTitle)) {
66+
                        //слагаме упражнение ако има лекция и го няма
67-
                        //има ли упражнение
67+
                        int indexLessonTitle = schedule.indexOf(lessonTitle);
68-
                        if(indexLessonTitle == schedule.size() - 1) {
68+
                        // what is this "if" for??
69-
                            schedule.add(indexLessonTitle + 1, exercise);
69+
                        if(schedule.contains(lessonTitle)) {
70-
                        } else  if(!schedule.get(indexLessonTitle + 1).equals(exercise)) {
70+
                            //има ли упражнение
71-
                            schedule.add(indexLessonTitle + 1, exercise);
71+
                            if(indexLessonTitle == schedule.size() - 1) {
72
                                schedule.add(indexLessonTitle + 1, exercise);
73-
                    } else {
73+
                            } else  if(!schedule.get(indexLessonTitle + 1).equals(exercise)) {
74-
                        schedule.add(lessonTitle);
74+
                                schedule.add(indexLessonTitle + 1, exercise);
75-
                        schedule.add(exercise);
75+
                            }
76-
                    }
76+
                        } else {
77-
                    break;
77+
                            schedule.add(lessonTitle);
78
                            schedule.add(exercise);
79
                        }
80
                        break;
81
                }
82
83
                input = scanner.nextLine();
84-
            input = scanner.nextLine();
84+
85
86
            printList(schedule);
87-
        printList(schedule);
87+
88
89
        private static void printList(List<String> elements) {
90
            int count = 1;
91
            for (String element : elements) {
92-
    private static void printList(List<String> elements) {
92+
                System.out.println(count + "." + element);
93-
        int count = 1;
93+
                count++;
94-
        for (String element : elements) {
94+
95-
            System.out.println(count + "." + element);
95+
96-
            count++;
96+
97
    }
98