Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _Exam_Problem01_DataTransferNoRegex
- {
- class Program
- {
- static void Main()
- {
- int inputLength = int.Parse(Console.ReadLine());
- //string sendersName = "";
- //string receiversName = "";
- //string cleanMessage = "";
- int totalDataTransferred = 0;
- while(inputLength > 0)
- {
- string[] input = Console.ReadLine()
- .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
- inputLength--;
- if (input.Length != 3)
- {
- continue;
- }
- char[] rawSender = input[0].ToCharArray();
- char[] rawReceiver = input[1].ToCharArray();
- char[] rawMessage = input[2].ToCharArray();
- string sendersName = "";
- string receiversName = "";
- string cleanMessage = "";
- bool invalidSender = false;
- bool invalidReceiver = false;
- bool invalidMessage = false;
- if(rawSender[0] != 's' || rawSender[1] != ':' || rawSender.Contains(';'))
- {
- continue;
- }
- if(rawReceiver[0] != 'r' || rawReceiver[1] != ':' || rawReceiver.Contains(';'))
- {
- continue;
- }
- if(rawMessage[0] != 'm' || rawMessage[1] != '-' || rawMessage[2] != '-' || (!rawMessage.Contains('"')))
- {
- continue;
- }
- bool messageIsValid = CheckForValiMessage(rawMessage);
- if(!messageIsValid)
- {
- continue;
- }
- for (int i = 2; i < rawSender.Length; i++)
- {
- char currentElement = rawSender[i];
- if(Char.IsLetter(currentElement))
- {
- sendersName += currentElement;
- }
- else if(Char.IsDigit(currentElement))
- {
- totalDataTransferred += int.Parse(currentElement.ToString());
- }
- else if(currentElement == ';')
- {
- invalidSender = true;
- break;
- }
- }
- for (int i = 2; i < rawReceiver.Length; i++)
- {
- char currentElement = rawReceiver[i];
- if(Char.IsLetter(currentElement) || currentElement == ' ')
- {
- receiversName += currentElement;
- }
- else if(Char.IsDigit(currentElement))
- {
- totalDataTransferred += int.Parse(currentElement.ToString());
- }
- else if(currentElement == ';')
- {
- invalidReceiver = true;
- break;
- }
- }
- for(int i = 4; i < rawMessage.Length -1; i++)
- {
- char currentElement = rawMessage[i];
- if(Char.IsLetter(currentElement) || currentElement == ' ')
- {
- cleanMessage += currentElement;
- }
- else
- {
- invalidMessage = true;
- break;
- }
- }
- if(invalidSender || invalidReceiver || invalidMessage)
- {
- continue;
- }
- Console.WriteLine($"{sendersName} says \"{cleanMessage}\" to {receiversName}");
- }
- Console.Write("Total data transferred: {0}MB", totalDataTransferred);
- }
- private static bool CheckForValiMessage(char[] rawMessage)
- {
- bool validMessage = true;
- for (int i = 5; i < rawMessage.Length - 1; i++)
- {
- char current = rawMessage[i];
- if(!Char.IsLetter(current) && current != ' ' )
- {
- validMessage = false;
- break;
- }
- }
- return validMessage;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement