Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- if (args[0] == "gen")
- GenerateRandom();
- else if (args[0] == "len")
- Console.WriteLine(Measure().ToString("0.00"));
- }
- static void GenerateRandom()
- {
- Random rnd = new Random();
- int len = rnd.Next(2, 101); // [2, 100]
- string blank = new string(' ', 10);
- char[] ls = blank.ToCharArray();
- int ln = -1;
- for (int i = 0; i < len; i++)
- {
- char[] s = blank.ToCharArray();
- int n = rnd.Next(0, 10); // [0, 9]
- s[n] = '#';
- for (int j = n; ln != -1 && j != ln && ls[j] == ' '; j += Math.Sign(ln - n))
- {
- s[j] = '#';
- }
- ln = n;
- ls = s;
- Console.WriteLine(s);
- }
- }
- static double Measure()
- {
- string[] lines = Console.In.ReadToEnd().Split('\n');
- string ls = lines[0];
- int ln = lines[0].IndexOf('#');
- double acc = 0;
- for (int i = 1; i < lines.Length; i++)
- {
- string s = lines[i];
- if (string.IsNullOrEmpty(s))
- break;
- int n = -1;
- for (int j = 0; j < 10; j++)
- {
- if (s[j] == '#')
- {
- if (n < 0 || j > ln)
- n = j;
- }
- }
- int d = ln - n;
- acc += Math.Round(Math.Sqrt(d * d + 1), 2);
- ls = s;
- ln = n;
- }
- return Math.Round(acc, 2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement