using System;
public class Test
{
private static void Main(string[] args)
{
float k = (float)new MyClass()+new MyClass()+new MyClass();
Console.WriteLine(k);
float k2 = new MyClass()+(float)new MyClass()+new MyClass();
Console.WriteLine(k2);
float k3 = new MyClass()+new MyClass()+(float)new MyClass();
Console.WriteLine(k3);
}
public class MyClass
{
public static implicit operator int(MyClass m)
{
return 5;
}
public static implicit operator long(MyClass m)
{
return 100;
}
public static implicit operator float(MyClass m)
{
return 3.14f;
}
public static implicit operator double(MyClass m)
{
return 2.71d;
}
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJIHByaXZhdGUgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgZmxvYXQgayA9IChmbG9hdCluZXcgTXlDbGFzcygpK25ldyBNeUNsYXNzKCkrbmV3IE15Q2xhc3MoKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoayk7CiAgICAgICAgICAgIAogICAgICAgICAgICBmbG9hdCBrMiA9IG5ldyBNeUNsYXNzKCkrKGZsb2F0KW5ldyBNeUNsYXNzKCkrbmV3IE15Q2xhc3MoKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoazIpOwogICAgICAgICAgICAKICAgICAgICAgICAgZmxvYXQgazMgPSBuZXcgTXlDbGFzcygpK25ldyBNeUNsYXNzKCkrKGZsb2F0KW5ldyBNeUNsYXNzKCk7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGszKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBjbGFzcyBNeUNsYXNzCiAgICAgICAgewogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGltcGxpY2l0IG9wZXJhdG9yIGludChNeUNsYXNzIG0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiA1OwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGltcGxpY2l0IG9wZXJhdG9yIGxvbmcoTXlDbGFzcyBtKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGltcGxpY2l0IG9wZXJhdG9yIGZsb2F0KE15Q2xhc3MgbSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIDMuMTRmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBwdWJsaWMgc3RhdGljIGltcGxpY2l0IG9wZXJhdG9yIGRvdWJsZShNeUNsYXNzIG0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAyLjcxZDsKICAgICAgICAgICAgfQogICAgICAgIH0KfQ==