using System.Collections.Generic;
public static int maxCount = 0 ;
public static int maxLunch = 0;
public static List<int> lunchNotAvailable = new List<int>(){1,2,3,4,5,6,7,8,9,10};
public static void Main()
Random rnd = new Random(0);
Dictionary<int,int> CafeLunch = new Dictionary<int,int>();
while (CafeLunch.Count < 5){
int randomLunchItem = rnd.Next(1,11);
int randomLunchCount = rnd.Next(1,11);
if (! CafeLunch.ContainsKey(randomLunchItem)){
CafeLunch.Add(randomLunchItem,randomLunchCount);
foreach(KeyValuePair<int,int> pair in CafeLunch){
int currentCount = pair.Value;
if (maxCount < currentCount){
}else if (maxCount == currentCount && pair.Key < maxLunch){
Console.WriteLine("Key = {0}, value = {1}",pair.Key,pair.Value);
Console.WriteLine("Please enter lunch number:");
int userRequest = Convert.ToInt32(Console.ReadLine());
if ((userRequest < 1 || userRequest > 10) || userRequest == 0){
}else if(! CafeLunch.ContainsKey(userRequest) || CafeLunch[userRequest] < 1){
Console.WriteLine("We do not have lunch {0} now. Would you like to try lunch {1}?",userRequest,maxLunch);
CafeLunch[userRequest] -= 1;
if (CafeLunch[userRequest] == 0){
addNotAvailable(userRequest);
Console.WriteLine("You get a lunch {0}!Currently we do not have the following lunches: {1}",userRequest,printNotAvailable());}
foreach(KeyValuePair<int,int> pair in CafeLunch){
int currentCount = pair.Value;
if (maxCount < currentCount){
}else if (maxCount == currentCount && pair.Key < maxLunch){
Console.WriteLine("Key = {0}, value = {1}",pair.Key,pair.Value);
static void notAvailable(int lunch){
lunchNotAvailable.Remove(lunch);
static void addNotAvailable(int lunch){
lunchNotAvailable.Add(lunch);
static string printNotAvailable(){
for ( int i = 0 ; i < lunchNotAvailable.Count; i ++){
concatLunch += lunchNotAvailable[i].ToString () + ",";