Advertisement
j0k3r

Untitled

Nov 24th, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.15 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace ConsoleApplication2
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Album[] albums = new Album[10];
  11.             Random r = new Random();
  12.             Record[] shortestSongs = new Record[10];
  13.             Record[] longestSongs = new Record[10];
  14.  
  15.             for (int i = 0; i < 10; i++)
  16.             {
  17.                 Album album = new Album(i);
  18.  
  19.                 for (int j = 0; j < 10; j++)
  20.                 {
  21.                     album.Tracks[j] = new Track(r.Next(30, 300));
  22.                 }
  23.  
  24.                 albums[i] = album;
  25.             }
  26.  
  27.             foreach (var item in albums)
  28.             {
  29.                 shortestSongs[item.ID] = new Record(item.ID, item.Tracks.OrderBy(l => l.Length).Take(3).Sum(t => t.Length));
  30.                 longestSongs[item.ID] = new Record(item.ID, item.Tracks.OrderBy(l => l.Length).Reverse().Take(3).Sum(t => t.Length));
  31.             }
  32.  
  33.             for (int i = 0; i < 10; i++)
  34.             {
  35.                 Console.WriteLine("Album #{0}: Sum of Shortest Songs: {1} - Sum of Longest Songs: {2}", shortestSongs[i].AlbumID, shortestSongs[i].Length, longestSongs[i].Length);
  36.             }
  37.  
  38.             Console.WriteLine("Shortest album is: #{0}", shortestSongs.OrderBy(s => s.Length).First().AlbumID);
  39.             Console.WriteLine("Longest album is: #{0}", longestSongs.OrderBy(l => l.Length).Last().AlbumID);
  40.  
  41.             Console.ReadLine();
  42.         }
  43.     }
  44.  
  45.     class Album
  46.     {
  47.         public Track[] Tracks { get; private set; }
  48.         public int ID { get; private set; }
  49.  
  50.         public Album(int id)
  51.         {
  52.             Tracks = new Track[10];
  53.             ID = id;
  54.         }
  55.     }
  56.  
  57.     class Track
  58.     {
  59.         public int Length { get; private set; }
  60.  
  61.         public Track(int length)
  62.         {
  63.             Length = length;
  64.         }
  65.     }
  66.  
  67.     class Record
  68.     {
  69.         public int AlbumID { get; private set; }
  70.         public int Length { get; private set; }
  71.  
  72.         public Record(int albumID, int length)
  73.         {
  74.             AlbumID = albumID;
  75.             Length = length;
  76.         }
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement