public static void Update_Generation(aCitizen New_Citizen) { int Max_Index = Heap_Max.Find_First_Best(); if (New_Citizen.nAttacks < Citizen[Max_Index].nAttacks) { Heap_Min.Pop(Heap_Min.pos[Max_Index]); Heap_Max.Pop(Heap_Max.pos[Max_Index]); Citizen[Max_Index].Assign(New_Citizen); Heap_Min.Push(Citizen[Max_Index].nAttacks, Max_Index); Heap_Max.Push(Citizen[Max_Index].nAttacks, Max_Index); } }