Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _02_TreasureHunt
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<string> initialLoot = Console.ReadLine()
- .Split("|")
- .ToList();
- List<string> stealedLoot = new List<string>();
- while (true)
- {
- var commandType = Console.ReadLine();
- string[] tokens = commandType.Split();
- if (commandType == "Yohoho!")
- {
- break;
- }
- else
- {
- switch (tokens[0])
- {
- case "Loot":
- for (int i = 1; i < tokens.Length; i++)
- {
- var wordToAdd = tokens[i];
- if (initialLoot.Contains(wordToAdd))
- {
- }
- else
- {
- initialLoot.Insert(0, wordToAdd);
- }
- }
- break;
- case "Drop":
- var removeAt = int.Parse(tokens[1]);
- if (removeAt < 0)
- {
- }
- else
- {
- var wordToAddInTheList = initialLoot[removeAt];
- initialLoot.Add(wordToAddInTheList);
- initialLoot.RemoveAt(removeAt);
- }
- break;
- case "Steal":
- var numOfWordsToSteal = int.Parse(tokens[1]);
- var numOfCounts = initialLoot.Count - numOfWordsToSteal;
- for (int i = initialLoot.Count-1; i >= numOfCounts; i--)
- {
- stealedLoot.Insert(0, initialLoot[i]);
- initialLoot.Remove(initialLoot[i]);
- }
- break;
- }
- }
- }
- var itemsGain = 0;
- var itemsInInitialLoot = initialLoot.Count;
- foreach (var item in initialLoot)
- {
- for (int i = 0; i < item.Length; i++)
- {
- itemsGain++;
- }
- }
- var averageGain = (double)itemsGain / (double)itemsInInitialLoot;
- Console.WriteLine(string.Join(", ", stealedLoot));
- if (itemsInInitialLoot > 0)
- {
- Console.WriteLine($"Average treasure gain: {averageGain:f2} pirate credits.");
- }
- else
- {
- Console.WriteLine($"Failed treasure hunt.");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement