Advertisement
Graf_Rav

Dictionary && Lists

Jun 10th, 2018
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. public static class Program{
  5.     public static void Main(){
  6.         Dictionary<int, Person> persons = new Dictionary<int, Person>{
  7.             {15, new Person("Петрова Н.А.",   'Ж',  1940)},
  8.             {22, new Person("Иваненко И.М.",  'М',  1940)},
  9.             {23, new Person("Иваненко М.И.",  'М',  1968)},
  10.             {24, new Person("Иваненко М.М.",  'М',  1990)},
  11.             {32, new Person("Будай А.И.",     'Ж',  1960)},
  12.             {33, new Person("Будай В.С.",     'Ж',  1987)},
  13.             {35, new Person("Будай С.С.",     'М',  1965)},
  14.             {42, new Person("Коладзе А.С.",   'Ж',  1935)},
  15.             {43, new Person("Коладзе Л.А.",   'М',  1955)},
  16.             {44, new Person("Родэ О.С.",      'М',  1992)},
  17.             {46, new Person("Родэ М.О.",      'М',  2010)},
  18.             {52, new Person("Ауэрман А.М.",   'Ж',  1995)},
  19.             {73, new Person("Антонова М.А.",  'Ж',  1967)},
  20.         };
  21.        
  22.         persons[22].children.Add(persons[23]);
  23.         persons[22].children.Add(persons[23]);
  24.         persons[42].children.Add(persons[23]);
  25.         persons[23].children.Add(persons[24]);
  26.         persons[73].children.Add(persons[24]);
  27.         persons[22].children.Add(persons[32]);
  28.         persons[42].children.Add(persons[32]);
  29.         persons[32].children.Add(persons[33]);
  30.         persons[35].children.Add(persons[33]);
  31.         persons[15].children.Add(persons[35]);
  32.         persons[32].children.Add(persons[44]);
  33.         persons[35].children.Add(persons[44]);
  34.         persons[23].children.Add(persons[52]);
  35.         persons[73].children.Add(persons[52]);
  36.        
  37.         Dictionary<int, Person>.KeyCollection keys = persons.Keys;
  38.         int ansID=-1; int minAge=1000;
  39.        
  40.         foreach(int key in keys){
  41.             if(persons[key].gender!='Ж'){
  42.                 continue;
  43.             }
  44.            
  45.             int minChildDOB=3000;
  46.             for(int j=0; j<persons[key].children.Count; j++){
  47.                 if(persons[key].children[j].dateOfBirth<minChildDOB){
  48.                     minChildDOB=persons[key].children[j].dateOfBirth;
  49.                 }
  50.             }
  51.             if(minChildDOB==3000){
  52.                 continue;
  53.             }
  54.            
  55.             if(minChildDOB - persons[key].dateOfBirth < minAge ){
  56.                 minAge = minChildDOB - persons[key].dateOfBirth;
  57.                 ansID = key;
  58.             }
  59.         }
  60.         Console.WriteLine( ansID==-1 ? "No" : ansID.ToString());
  61.     }
  62. }
  63.  
  64. public class Person{
  65.     public string name;
  66.     public int dateOfBirth;
  67.     public char gender;
  68.    
  69.     public List<Person> children;
  70.    
  71.     public Person(string _name, char _gender, int _dateOfBirth){
  72.         name=_name;
  73.         dateOfBirth=_dateOfBirth;
  74.         gender=_gender;
  75.         children=new List<Person>();
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement