Skip to content

Instantly share code, notes, and snippets.

@Xmerr
Created December 15, 2016 13:44
Show Gist options
  • Save Xmerr/c52a4aaab9b27ffea748220c85e65a09 to your computer and use it in GitHub Desktop.
Save Xmerr/c52a4aaab9b27ffea748220c85e65a09 to your computer and use it in GitHub Desktop.
For Reddit Intermediate Challenge 275
Hydrogen
Helium
Lithium
Beryllium
Boron
Carbon
Nitrogen
Oxygen
Fluorine
Neon
Sodium
Magnesium
Aluminium
Silicon
Phosphorus
Sulfur
Chlorine
Argon
Potassium
Calcium
Scandium
Titanium
Vanadium
Chromium
Manganese
Iron
Cobalt
Nickel
Copper
Zinc
Gallium
Germanium
Arsenic
Selenium
Bromine
Krypton
Rubidium
Strontium
Yttrium
Zirconium
Niobium
Molybdenum
Technetium
Ruthenium
Rhodium
Palladium
Silver
Cadmium
Indium
Tin
Antimony
Tellurium
Iodine
Xenon
Caesium
Barium
Lanthanum
Cerium
Praseodymium
Neodymium
Promethium
Samarium
Europium
Gadolinium
Terbium
Dysprosium
Holmium
Erbium
Thulium
Ytterbium
Lutetium
Hafnium
Tantalum
Tungsten
Rhenium
Osmium
Iridium
Platinum
Gold
Mercury
Thallium
Lead
Bismuth
Polonium
Astatine
Radon
Francium
Radium
Actinium
Thorium
Protactinium
Uranium
Neptunium
Plutonium
Americium
Curium
Berkelium
Californium
Einsteinium
Fermium
Mendelevium
Nobelium
Lawrencium
Rutherfordium
Dubnium
Seaborgium
Bohrium
Hassium
Meitnerium
Darmstadtium
Roentgenium
Copernicium
Ununtrium
Flerovium
Livermorium
Garfieldium
Odium
Nermalium
Pookium
Arbukelium
Binkium
Lizzium
Arlenium
Orsonium
Royium
Wadium
Bookerium
Sheldon
Boium
Lanoline
Leonardium
Donatellium
Michelangelon
Raphaellium
Splinterium
Oneilium
Jonesium
Shredderite
Stockmanium
Beboppium
Rocksteadium
Krangium
Gruffium
Zummium
Grammium
Tummium
Sunnium
Cubbium
Guston
Cavinium
Callaum
Gregorium
Igthornium
Scroogium
Hueum
Dewium
Louium
Webbium
Beaklium
Duckworthium
Bubbium
Tootsium
Mcquackium
Gearloosium
Gizmodium
Glomgoldium
Beaglium
Magica
Drakium
Gosalon
Muddlefootium
Morganium
Hooterium
Gryzlikoffium
Negaduckium
Bushrootium
Megavoltium
Jagaium
Lionoium
Tygram
Panthron
Cheetaram
Snarfium
Jemium
Kimberium
Ajaleithum
Shanium
Carmenium
Pizzazzium
Roxium
Stormerium
Jettium
Riotium
Rapturium
Minxium
Chippium
Dalium
Monterium
Hackwrenchium
Zipperium
Fatcatium
Nimnulum
Tommium
Chuckium
Phillium
Lillium
Angelicum
Susium
Dillium
Kimium
Stuium
Didium
Drewium
Bettium
Renium
Stimpium
Muddium
Powderedtoastium
Optimusprimium
Bumblebium
Cliffjumperium
Wheeljackium
Prowlium
Megatronium
Soundwavium
Shockwavium
Skywarpium
Starscreamium
Gadgetium
Pennium
Brainium
Clawium
Quimbium
Alvinium
Simonium
Theodorium
Davium
Brittanium
Jeanettium
Eleanorium
Prefectium
Dentium
Beeblebroxium
Trilliane
Marvinium
Slartium
Deepthoughtium
Vogone
Jeltzium
Eddium
Fenchurchium
Halfruntium
Majikthise
Vroomfondelium
Colluphidium
Alfium
Gordonium
Willium
Katium
Luckium
Homerium
Margium
Bartium
Lisium
Maggium
Nedium
Toddium
Roddium
Burnsium
Smitheron
Karlium
Lennium
Moeium
Barnium
Krustium
Skinnerium
Mcclurium
Mcbanium
Itchium
Scratchium
Wiggium
Springfieldium
Murdockium
Baracium
Hanniblium
Facium
Martium
Brownium
Biffium
Lorrainium
Georgium
Stricklandium
Goldium
Claytonium
Hillvallium
Deloreum
Waynium
Garthium
Benjamine
Cassandrium
Vanderhoffium
Stacium
Buttercupium
Westlium
Inigon
Fezzikium
Vizzinium
Humperdinkum
Rugenium
Maxium
Valerium
Sarahium
Jarethium
Tobium
Hogglium
Didymusium
Simbium
Mufasium
Scarium
Nalium
Timonium
Pumbaaium
Rafikium
Zazuium
Sarabium
Shenzium
Banzium
Edium
Bellium
Beastium
Cogsworthium
Pottsium
Lumierium
Gastonium
Lefouium
Mauricium
Woodium
Buzzium
Slinkium
Rexium
Hammium
Andium
Siddium
Smithium
Philium
Vivianium
Carltonium
Hilarium
Ashlium
Geoffrium
Sinclarium
Earlium
Franium
Robbium
Charlenium
Babium
Ethylium
Hessium
Richfieldium
Littlefootium
Ceraium
Duckium
Petrium
Spikium
Longneckium
Sharptoothium
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace Splurthian_Chemistry_102
{
class Program
{
static List<string> symbols;
static void Main(string[] args)
{
symbols = new List<string>();
List<string> elements = new List<string>();
using (StreamReader file = new StreamReader("Elements.txt"))
{
string line;
//Each line of this file is a new word
while ((line = file.ReadLine()) != null)
elements.Add(line.Trim());
}
//Core Problem(gets to 262)
try
{
foreach (string el in elements)
MakeSymbol(el);
}
catch
{
symbols.Clear();
}
//Bonus Problem (Gets to 353)
elements = elements.OrderBy(x => x).OrderBy(x => x.Length).ToList();
foreach (string el in elements)
MakeSymbol(el);
}
/// <summary>
/// Creates the best symbol for the passed in element
/// using the symbol list as a restriction
/// </summary>
/// <param name="element">
/// Element to create a symbol for
/// </param>
static void MakeSymbol(string element)
{
element = element.ToUpper();
for (int i = 0; i < element.Length - 1; i++)
for (int j = i + 1; j < element.Length; j++)
if (!symbols.Any(x => x == element[i].ToString() + element[j].ToString())) {
symbols.Add(element[i].ToString() + element[j].ToString());
return;
}
throw new Exception("No Valid Symbol Found For " + element + ", " + symbols.Count + " valid symbols found");
}
}
}
@Xmerr
Copy link
Author

Xmerr commented Dec 15, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment