<commit_before>﻿using System;
using System.Collections.Generic;
using System.Linq;

public class RollyTheCoder
{
    static void Main()
    {
        string input = Console.ReadLine();
        //event participants
        Dictionary<string, List<string>> participantsForEvent =
            new Dictionary<string, List<string>>();
        //id , event, participants
        Dictionary<int, Dictionary<string, List<string>>> rollyEvenet = 
            new Dictionary<int, Dictionary<string, List<string>>>();

        while (!input.Equals("Time For Code"))
        {
            string trimmedEvent = null;
            string[] info = input.Split();
            //get id
            int currentId = int.Parse(info[0]);
            string currentEvent = info[1];
            List<string> currentParticipants = new List<string>();

            //if the event contains hash tag
            if (IsValidEvent(currentEvent))
            {
                trimmedEvent = TrimEvent(currentEvent);
            }

            for (int i = 2; i < info.Length; i++)
            {
                currentParticipants.Add(info[i]);
            }

            if (!rollyEvenet.ContainsKey(currentId))
            {
                rollyEvenet.Add(currentId, new Dictionary<string, List<string>>());
            }
            else
            {
                if (rollyEvenet[currentId].ContainsKey(trimmedEvent))
                {

                }
            }
            

            input = Console.ReadLine();
        } 
    }

    private static string TrimEvent(string currentEvent)
    {
        return currentEvent.Substring(1, currentEvent.Length - 1);

    }

    private static bool IsValidEvent(string currentEvent)
    {
        if (currentEvent[0].Equals('#'))
        {
            return true;
        }
        return false;
    }
}<commit_msg>Rolli the coder 80/100 atm.<commit_after>﻿using System;
using System.Collections.Generic;
using System.Linq;

public class RollyTheCoder
{
    static void Main()
    {
        string input = Console.ReadLine();
        //event participants
        Dictionary<string, HashSet<string>> participantsForEvent =
            new Dictionary<string, HashSet<string>>();
        //id , event, participants
        Dictionary<long, Dictionary<string, List<string>>> rollyEvenet = 
            new Dictionary<long, Dictionary<string, List<string>>>();

        bool flag = false;
        while (!input.Equals("Time for Code"))
        {
            flag = true;
            string trimmedEvent = null;
            string[] info = input.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            //get id
            long currentId = int.Parse(info[0]);
            string currentEvent = info[1];
            List<string> currentParticipants = new List<string>();

            //if the event contains hash tag
            if (IsValidEvent(currentEvent))
            {
                trimmedEvent = TrimEvent(currentEvent);

                for (int i = 2; i < info.Length; i++)
                {
                    currentParticipants.Add(info[i]);
                }

                if (!rollyEvenet.ContainsKey(currentId))
                {
                    rollyEvenet.Add(currentId, new Dictionary<string, List<string>>());
                    if (!rollyEvenet[currentId].ContainsKey(trimmedEvent))
                    {
                        rollyEvenet[currentId][trimmedEvent] = new List<string>();
                        participantsForEvent[trimmedEvent] = new HashSet<string>();
                    }
                }

                if (rollyEvenet[currentId].ContainsKey(trimmedEvent))
                {
                    foreach (var currentParticipant in currentParticipants)
                    {
                        rollyEvenet[currentId][trimmedEvent].Add(currentParticipant);
                        participantsForEvent[trimmedEvent].Add(currentParticipant);
                    }
                }
            }

            input = Console.ReadLine();
        }

        if (flag)
        {
            foreach (var eve in participantsForEvent
            .OrderByDescending(p => p.Value.Count))
            {
                Console.WriteLine($"{eve.Key} - {eve.Value.Count}");
                foreach (var part in eve.Value
                    .OrderBy(p => p))
                {
                    Console.WriteLine(part);
                }
            }
        }
    }

    private static string TrimEvent(string currentEvent)
    {
        return currentEvent.Substring(1, currentEvent.Length - 1);

    }

    private static bool IsValidEvent(string currentEvent)
    {
        if (currentEvent[0].Equals('#'))
        {
            return true;
        }
        return false;
    }
}
{'fraction_non_alphanumeric': 0.10279983284580026, 'fraction_numerical': 0.0035520267446719597, 'mean_word_length': 1.546276595744681, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '255171', 'n_tokens_mistral': 1248, 'n_tokens_neox': 1166, 'n_words': 254}