Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Softuni_course_planning
- {
- class Program
- {
- static void Main()
- {
- List<string> scheduleSoftUni = Console.ReadLine()
- .Split(", ")
- .ToList();
- while (true)
- {
- string changes = Console.ReadLine();
- if (changes == "course start")
- break;
- else
- {
- string[] changesInfo = changes.Split(':').ToArray();
- string lesson = changesInfo[1];
- switch (changesInfo[0])
- {
- case "Add":
- {
- AddLesson(scheduleSoftUni, lesson);
- break;
- }
- case "Insert":
- {
- int index = int.Parse(changesInfo[2]);
- InsertLesson(scheduleSoftUni, lesson, index);
- break;
- }
- case "Remove":
- {
- RemoveLesson(scheduleSoftUni, lesson);
- RemoveLesson(scheduleSoftUni, $"{lesson}-Exercise");
- break;
- }
- case "Swap":
- {
- string lesson2 = changesInfo[2];
- if (scheduleSoftUni.Contains(lesson) && scheduleSoftUni.Contains(lesson2))
- {
- int index = scheduleSoftUni.IndexOf(lesson);
- int index2 = scheduleSoftUni.IndexOf(lesson2);
- scheduleSoftUni[index] = lesson2;
- scheduleSoftUni[index2] = lesson;
- MoveExercise(scheduleSoftUni, lesson, index2);
- MoveExercise(scheduleSoftUni, lesson2, index);
- }
- break;
- }
- case "Exercise":
- {
- string exercise = $"{lesson}-Exercise";
- if (scheduleSoftUni.Contains(lesson) && !scheduleSoftUni.Contains(exercise))
- {
- if (scheduleSoftUni.IndexOf(lesson) < scheduleSoftUni.Count - 1)
- scheduleSoftUni.Insert(scheduleSoftUni.IndexOf(lesson) + 1, exercise);
- else
- scheduleSoftUni.Add(exercise);
- }
- else if (!scheduleSoftUni.Contains(lesson) && !scheduleSoftUni.Contains(exercise))
- {
- scheduleSoftUni.Add(lesson);
- scheduleSoftUni.Add(exercise);
- }
- break;
- }
- }
- }
- }
- for (int i = 0; i < scheduleSoftUni.Count; i++)
- {
- Console.WriteLine($"{i + 1}.{scheduleSoftUni[i]}");
- }
- }
- static void MoveExercise(List<string> schedule, string course, int position)
- {
- if (schedule.Contains($"{course}-Exercise"))
- {
- schedule.Remove($"{course}-Exercise");
- if (position < schedule.Count - 1)
- schedule.Insert(position + 1, $"{course}-Exercise");
- else
- schedule.Add($"{course}-Exercise");
- }
- }
- private static void InsertLesson(List<string> schedule, string course, int position)
- {
- if (!DoesExists(schedule, course) && position >= 0 && position < schedule.Count)
- {
- schedule.Insert(position, course);
- }
- }
- static void AddLesson(List<string> schedule, string course)
- {
- if (!DoesExists(schedule, course))
- {
- schedule.Add(course);
- }
- }
- static void RemoveLesson(List<string> schedule, string course)
- {
- if (DoesExists(schedule, course))
- {
- schedule.Remove(course);
- }
- }
- static bool DoesExists(List<string> schedule, string course)
- {
- return schedule.Contains(course);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment