Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class NaBabaMiSmetalnika
- {
- static void Main()
- {
- int widthSmetalo = int.Parse(Console.ReadLine());
- int[,] smetalo = new int[8, widthSmetalo];
- long[] numbers = new long[8];
- for (int i = 0; i < 8; i++)
- {
- int mask = int.Parse(Console.ReadLine());
- numbers[i] = mask;
- int move = widthSmetalo - 1;
- for (int j = 0; j < widthSmetalo; j++)
- {
- smetalo[i, j] = (mask >> move) & 1;
- move--;
- }
- }
- //Print the matrix
- //for (int i = 0; i < 8; i++)
- //{
- // for (int j = 0; j < widthSmetalo; j++)
- // {
- // Console.Write(smetalo[i, j]);
- // }
- // Console.WriteLine();
- //}
- string babaCommand = "";
- int row = 0;
- int prustPosition = 0;
- long result = 0;
- int zeroColumnCounter = 0;
- while (true)
- {
- int onesCount = 0;
- int zeroCount = 0;
- zeroColumnCounter = 0;
- babaCommand = Console.ReadLine();
- if (babaCommand == "stop")
- {
- for (int i = 0; i < 8; i++)
- {
- numbers[i] = 0;
- for (int j = 0; j < widthSmetalo; j++)
- {
- long temp = 1;
- numbers[i] <<= 1;
- if (smetalo[i, j] == 1)
- numbers[i] = numbers[i] | temp;
- }
- result += numbers[i];
- }
- for (int i = widthSmetalo - 1; i >= 0; i--)
- {
- zeroCount = 0;
- for (int j = 0; j < 8; j++)
- {
- if (smetalo[j, i] == 0)
- zeroCount++;
- }
- if (zeroCount == 8)
- zeroColumnCounter++;
- }
- break;
- }
- else if (babaCommand == "left" || babaCommand == "right")
- {
- row = int.Parse(Console.ReadLine());
- prustPosition = int.Parse(Console.ReadLine());
- if (prustPosition < 0)
- prustPosition = 0;
- else if (prustPosition > widthSmetalo - 1)
- prustPosition = widthSmetalo - 1;
- if (babaCommand == "left")
- {
- for (int i = 0; i <= prustPosition; i++)
- {
- if (smetalo[row, i] == 1)
- {
- onesCount++;
- smetalo[row, i] = 0;
- }
- }
- for (int i = 0; onesCount > 0; i++, onesCount--)
- {
- smetalo[row, i] = 1;
- }
- }
- else if (babaCommand == "right")
- {
- for (int i = prustPosition; i < widthSmetalo; i++)
- {
- if (smetalo[row, i] == 1)
- {
- onesCount++;
- smetalo[row, i] = 0;
- }
- }
- for (int i = widthSmetalo - 1; onesCount > 0; i--, onesCount--)
- {
- smetalo[row, i] = 1;
- }
- }
- }
- else if (babaCommand == "reset")
- {
- for (int i = 0; i < 8; i++)
- {
- onesCount = 0;
- for (int j = 0; j < widthSmetalo; j++)
- {
- if (smetalo[i, j] == 1)
- {
- onesCount++;
- smetalo[i, j] = 0;
- }
- }
- for (int j = 0; onesCount > 0; j++, onesCount--)
- {
- smetalo[i, j] = 1;
- }
- }
- }
- //for (int i = 0; i < 8; i++)
- //{
- // for (int j = 0; j < widthSmetalo; j++)
- // {
- // Console.Write(smetalo[i, j]);
- // }
- // Console.WriteLine();
- //}
- }
- Console.WriteLine(result * zeroColumnCounter);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement