Rezultati

Up. imeNalogaJezikRezultatČas oddaje
hereforbeer-2017 Črte C# 0/100Prekoračen čas (TLE) 20. apr '17 @ 19:00

Test Točke Porabljen spomin Porabljen čas Status
#1 10/10 23,379 MiB 0,000 s OK
#2 10/10 23,617 MiB 0,000 s OK
#3 10/10 21,859 MiB 0,000 s OK
#4 10/10 53,918 MiB 0,000 s OK
#5 0/10 882,520 MiB 10,896 s Prekoračen čas
#6 0/10 791,664 MiB 10,962 s Prekoračen čas
#7 0/10 1078,172 MiB 10,937 s Prekoračen čas
#8 0/10 789,664 MiB 10,979 s Prekoračen čas
#9 0/10 1086,309 MiB 10,922 s Prekoračen čas
#10 0/10 1085,563 MiB 10,926 s Prekoračen čas

Ocenjevani program (Program.cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UPM_Crte
{
	class Kordinate
	{
		public int x { get; set; }
		public int y { get; set; }
	}

	class Program
	{
		static void Main(string[] args)
		{
			int podatki = Int32.Parse(Console.ReadLine());
			string vrstica;
			string[] splitano;
			List<Kordinate> vhod = new List<Kordinate>();

			for(int i = 0; i < podatki; i++) {
				vrstica = Console.ReadLine();
				splitano = vrstica.Split(' ');
				vhod.Add(new Kordinate { x = Int32.Parse(splitano[0]), y = Int32.Parse(splitano[1])});
			}

			//int limit = (podatki * (podatki - 1)) / 2;
			List<double> dolzine = new List<double>();

			for(int i = 0; i < podatki; i++) {
				for (int j = i; j < podatki; j++) {
					if (i == j)
						continue;

					dolzine.Add(Math.Sqrt(Math.Pow(vhod[j].x - vhod[i].x, 2) + Math.Pow(vhod[j].y - vhod[i].y, 2)));
				}
			}

			int izhod = 0;

			var dict = new Dictionary<double, int>();

			foreach (var value in dolzine)
			{
				if (dict.ContainsKey(value))
					dict[value]++;
				else
					dict[value] = 1;
			}

			foreach (var pair in dict)
				if (pair.Value != 1)
					izhod += (pair.Value * (pair.Value - 1) / 2);

			Console.WriteLine(izhod);
		}
	}
}