SHOW:
|
|
- or go back to the newest paste.
| 1 | using System; | |
| 2 | using System.Collections.Generic; | |
| 3 | using System.Linq; | |
| 4 | ||
| 5 | namespace _04.Files | |
| 6 | {
| |
| 7 | public class File | |
| 8 | {
| |
| 9 | public string Name { get; set; }
| |
| 10 | ||
| 11 | public string Folder { get; set; }
| |
| 12 | ||
| 13 | public long Size { get; set; }
| |
| 14 | ||
| 15 | } | |
| 16 | ||
| 17 | public class Files | |
| 18 | {
| |
| 19 | public static void Main() | |
| 20 | {
| |
| 21 | var filesNumber = int.Parse(Console.ReadLine()); | |
| 22 | var allFiles = new List<File>(); | |
| 23 | ||
| 24 | for (int i = 0; i < filesNumber; i++) | |
| 25 | {
| |
| 26 | var input = Console.ReadLine().Split('\\');
| |
| 27 | var fileData = input.Last().Split(';');
| |
| 28 | var fileName = fileData[0]; | |
| 29 | var fileSize = fileData.Last(); | |
| 30 | ||
| 31 | var currFile = new File(); | |
| 32 | currFile.Folder = input[0]; | |
| 33 | currFile.Name = fileName; | |
| 34 | currFile.Size = long.Parse(fileSize); | |
| 35 | allFiles.Add(currFile); | |
| 36 | } | |
| 37 | ||
| 38 | var command = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
| |
| 39 | var folder = command.Last(); | |
| 40 | var ext = command.First(); | |
| 41 | ||
| 42 | var results = new Dictionary<string,long>(); | |
| 43 | ||
| 44 | foreach (var file in allFiles) | |
| 45 | {
| |
| 46 | if (file.Folder.Equals(folder) && file.Name.EndsWith(ext)) | |
| 47 | {
| |
| 48 | results[file.Name] = file.Size; | |
| 49 | } | |
| 50 | } | |
| 51 | ||
| 52 | if (results.Count == 0) | |
| 53 | {
| |
| 54 | Console.WriteLine("No");
| |
| 55 | } | |
| 56 | ||
| 57 | else | |
| 58 | {
| |
| 59 | foreach (var result in results.OrderByDescending(r => r.Value).ThenBy(r => r.Key)) | |
| 60 | {
| |
| 61 | Console.WriteLine($"{result.Key} - {result.Value} KB");
| |
| 62 | } | |
| 63 | } | |
| 64 | } | |
| 65 | } | |
| 66 | } |