Aliendreamer

messing arround

May 23rd, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.32 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5.      public  class Program
  6.     {
  7.         public static void Main(string[] args)
  8.         {
  9.             int inputNum=int.Parse(Console.ReadLine());
  10.             //legion->soldier->count->activity
  11.             //Dictionary<string,Dictionary<string,Dictionary<string,int>>>legions=new Dictionary<int,Dictionary<string,Dictionary<string,int>>>();
  12.            
  13.             List<Legion>allLegions=new List<Legion>();
  14.            
  15.             for(int i=0;i<inputNum;i++)
  16.             {
  17.                 string[]inputTokens=Console.ReadLine().Split(new string []{"=","->",":"},StringSplitOptions.RemoveEmptyEntries).ToArray();
  18.                
  19.                 int activity=int.Parse(inputTokens[0]);
  20.                 string legionName=inputTokens[1];
  21.                 string soldiertype=inputTokens[2];
  22.                 long soldierCount=long.Parse(inputTokens[3]);
  23.                
  24.                 if(!allLegions.Any(x=>x.Name==legionName))
  25.                 {
  26.                     Legion legion=new Legion(legionName,activity);
  27.                     Soldier soldier=new Soldier(soldiertype,soldierCount);
  28.                     legion.soldiers.Add(soldier);
  29.                 }
  30.                 else
  31.                 {
  32.                     Legion legion=allLegions.FirstOrDefault(x=>x.Name==legionName);
  33.                     int currentActivity=legion.Activity;
  34.                     var compare= currentActivity<activity?legion.Activity=activity:legion.Activity=currentActivity;
  35.                    
  36.                     if(!legion.soldiers.All(x=>x.Type==soldiertype))
  37.                     {
  38.                         legion.soldiers.Add(new Soldier(soldiertype,soldierCount));
  39.                     }
  40.                     else
  41.                     {
  42.                         Soldier soldier=legion.soldiers.FirstOrDefault(x=>x.Type==soldiertype);
  43.                         soldier.Number+=soldierCount;
  44.                     }
  45.                 }              
  46.             }
  47.             string []command=Console.ReadLine().Split(new[]{' ','/'},StringSplitOptions.RemoveEmptyEntries).ToArray();
  48.             if(command.Length==1)
  49.             {
  50.                 string soldierWanted=command[0];
  51.                
  52.                 foreach(var s in allLegions.Where(x=>x.soldiers.Any(t=>t.Type==soldierWanted)))
  53.                 {
  54.                     Console.WriteLine("{0} :{1}",s.Activity,s.Name);
  55.                 }
  56.             }
  57.            
  58.         }
  59.     }
  60.  
  61. public class Legion
  62. {
  63.     public string Name{get;set;}
  64.     public int Activity{get;set;}
  65.     public List<Soldier>soldiers{get;set;}
  66.    
  67.     public Legion(string name,int activity)
  68.     {
  69.         this.Activity=activity;
  70.         this.Name=name;
  71.         this.soldiers=new List<Soldier>();
  72.     }
  73.    
  74. }
  75. public class Soldier
  76. {
  77.     public string Type{get;set;}
  78.    
  79.     public long Number{get;set;}
  80.    
  81.     public Soldier(string type,long number)
  82.     {
  83.         this.Type=type;
  84.         this.Number=number;
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment