using System.Collections.Generic;
public static void Main()
Console.WriteLine(5 / 3);
var dict = new Sparse<Vector2>(1);
dict.Set(10, new Vector2() { x = 1, y = 2 });
dict.Set(20, new Vector2() { x = 10, y = 20 });
dict.Set(100, new Vector2() { x = 100, y = 200 });
Console.WriteLine(dict.Contains(0));
Console.WriteLine(dict.Contains(10));
Console.WriteLine(dict.Contains(20));
Console.WriteLine(dict.Contains(100));
return Math.Sqrt(x * x + y * y);
public class Sparse<T> where T : struct
readonly int m_BucketSize;
public Sparse(int bucketSize)
m_BucketSize = bucketSize;
m_Buckets = new List<Bucket>();
public void Set(int key, T value)
var bucketIndex = key / m_BucketSize;
public bool Contains(int key)
public void Remove(int key)
m_Elements = new Element<T>[size];
public struct Element<T> where T : struct
public bool IsValid { get; private set; }
public T Value { get; private set; }