/*
Veidoja: Sofiia Kučerenko
Grupa: 110
Praktiskais darbs 6.3.
Izmantotais Compiler: www.onlinegdb.com
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
int[][] vietas = new int[][]
{
new int[]{0, 0, 0},
new int[]{0, 0, 0, 0, 0},
new int[]{0, 0, 0, 0, 0, 0, 0}
};

List<string> rezervetasVietas = new List<string>();
int izveletaDarbiba = 0;

while (izveletaDarbiba != 4)
{
Console.WriteLine("1. Parādīt zāli");
Console.WriteLine("2. Rezervēt vietu");
Console.WriteLine("3. Parādīt rezervāciju sarakstu");
Console.WriteLine("4. Iziet");
Console.Write("Izvēlieties darbību: ");

string ievade = Console.ReadLine();
bool pareizs = int.TryParse(ievade, out izveletaDarbiba);

if (!pareizs || izveletaDarbiba < 1 || izveletaDarbiba > 4)
{
Console.WriteLine("Nederīga darbība");
continue;
}

if (izveletaDarbiba == 1)
{
ParaditZali(vietas);
}
else if (izveletaDarbiba == 2)
{
RezervetVietu(vietas, rezervetasVietas);
}
else if (izveletaDarbiba == 3)
{
ParaditRezervacijas(rezervetasVietas);
}
else if (izveletaDarbiba == 4)
{
}
}
}

static void ParaditZali(int[][] vietas)
{
for (int rindas = 0; rindas < vietas.Length; rindas++)
{
Console.Write("Rinda " + (rindas + 1) + ": ");
for (int vieta = 0; vieta < vietas[rindas].Length; vieta++)
{
bool brivaVieta = vietas[rindas][vieta] == 0;
Console.Write(brivaVieta ? "[O] " : "[X] ");
}
Console.WriteLine();
}
}

static void RezervetVietu(int[][] vietas, List<string> rezervetasVietas)
{
Console.Write("Ievadiet rindas numuru: ");
int rindasNumurs = int.Parse(Console.ReadLine()) - 1;
Console.Write("Ievadiet vietas numuru: ");
int izveletaVieta = int.Parse(Console.ReadLine()) - 1;

if (rindasNumurs >= 0 && rindasNumurs < vietas.Length && izveletaVieta >= 0 && izveletaVieta < vietas[rindasNumurs].Length)
{
if (vietas[rindasNumurs][izveletaVieta] == 0)
{
vietas[rindasNumurs][izveletaVieta] = 1;
rezervetasVietas.Add("Rinda " + (rindasNumurs + 1) + ", Vieta " + (izveletaVieta + 1));
Console.WriteLine("Rezervēts: Rinda " + (rindasNumurs + 1) + ", Vieta " + (izveletaVieta + 1));
}
else Console.WriteLine("Šī vieta ir jau rezervēta");
}
else Console.WriteLine("Nepareiza rinda vai vieta");
}

static void ParaditRezervacijas(List<string> rezervetasVietas)
{
if (rezervetasVietas.Count == 0) Console.WriteLine("Vēl nav rezervāciju");
else
{
Console.WriteLine("Rezervētās vietas: ");
for (int i = 0; i < rezervetasVietas.Count; i++)
Console.WriteLine(rezervetasVietas[i]);
}
}
}
}