using System;
using System.Linq;
class A
{
public double Value;
public static implicit operator A(double x) { return new A() { Value = x }; }
}
public class Test
{
public static void Main()
{
var array = new A[] { 1.7, 2.3, -7.8, -11.1, 4.5, 42 };
var a = array.Aggregate((r, x) => r.Value < x.Value ? r : x);
Console.WriteLine(a.Value);
Console.WriteLine(Object.ReferenceEquals(a, array[3]));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCmNsYXNzIEEKewogIHB1YmxpYyBkb3VibGUgVmFsdWU7CiAgcHVibGljIHN0YXRpYyBpbXBsaWNpdCBvcGVyYXRvciBBKGRvdWJsZSB4KSB7IHJldHVybiBuZXcgQSgpIHsgVmFsdWUgPSB4IH07IH0KfQoKcHVibGljIGNsYXNzIFRlc3QKewogIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICB7CiAgICB2YXIgYXJyYXkgPSBuZXcgQVtdIHsgMS43LCAyLjMsIC03LjgsIC0xMS4xLCA0LjUsIDQyIH07CiAgICB2YXIgYSA9IGFycmF5LkFnZ3JlZ2F0ZSgociwgeCkgPT4gci5WYWx1ZSA8IHguVmFsdWUgPyByIDogeCk7CiAgICBDb25zb2xlLldyaXRlTGluZShhLlZhbHVlKTsKICAgIENvbnNvbGUuV3JpdGVMaW5lKE9iamVjdC5SZWZlcmVuY2VFcXVhbHMoYSwgYXJyYXlbM10pKTsKICB9Cn0=