using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace D3._2 { class Program { static void Main(string[] args) { if (args.Length < 1) return; if (File.Exists(args[0]) == false) return; var file = File.OpenText(args[0]); var fabric = new HashSet[1000, 1000]; do { var line = file.ReadLine(); if (line == null) break; var n = line.Split("@")[0]; var l = line.Split("@")[1]; var xy = l.Split(":")[0]; var wh = l.Split(":")[1]; var x = int.Parse(xy.Split(",")[0]); var y = int.Parse(xy.Split(",")[1]); var w = int.Parse(wh.Split("x")[0]); var h = int.Parse(wh.Split("x")[1]); for (int i = x; i < x + w; i++) { for (int j = y; j < y + h; j++) { if (fabric[i, j] == null) fabric[i, j] = new HashSet(); fabric[i, j].Add(n); } } } while (true); Dictionary all = new Dictionary(); for (int x = 0; x < 1000; x++) { for (int y = 0; y < 1000; y++) { if (fabric[x, y] == null) continue; var fl = fabric[x, y]; if (fl.Count == 1 && all.ContainsKey(fl.FirstOrDefault()) == false) { all.Add(fl.FirstOrDefault(), true); } if (fl.Count == 1) continue; foreach (var f in fl) { if (all.ContainsKey(f) == false) all.Add(f, false); else all[f] = false; } } } Console.WriteLine(all.FirstOrDefault(a => a.Value == true)); } } }