using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
A[] a = new A[3];
a[0] = new A(1);
a[1] = new A(2);
a[2] = new A(3);
Delete( ref a, new A(1));
Console.WriteLine( a.Length );
}
private static void Delete( ref A[] arr, A a )
{
var temp = new List<A>(arr);
temp.Remove(a);
arr = temp.ToArray();
}
}
public class A
{
int _i;
public A( int i ){ _i = i; }
public override bool Equals( object o )
{
A a = o as A;
return a != null && _i == a._i;
}
public override int GetHashCode(){ return _i; }
public override string ToString(){ return _i.ToString(); }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlBW10gYSA9IG5ldyBBWzNdOwoJCWFbMF0gPSBuZXcgQSgxKTsKCQlhWzFdID0gbmV3IEEoMik7CgkJYVsyXSA9IG5ldyBBKDMpOwoJCQoJCURlbGV0ZSggcmVmIGEsIG5ldyBBKDEpKTsKCQlDb25zb2xlLldyaXRlTGluZSggYS5MZW5ndGggKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCBEZWxldGUoIHJlZiBBW10gYXJyLCBBIGEgKQoJewoJCXZhciB0ZW1wID0gbmV3IExpc3Q8QT4oYXJyKTsKICAgICAgICB0ZW1wLlJlbW92ZShhKTsKICAgICAgICBhcnIgPSB0ZW1wLlRvQXJyYXkoKTsKCX0KfQoKcHVibGljIGNsYXNzIEEKewoJaW50IF9pOwoJcHVibGljIEEoIGludCBpICl7IF9pID0gaTsgfQoJCglwdWJsaWMgb3ZlcnJpZGUgYm9vbCBFcXVhbHMoIG9iamVjdCBvICkKCXsKCQlBIGEgPSBvIGFzIEE7CgkJcmV0dXJuIGEgIT0gbnVsbCAmJiBfaSA9PSBhLl9pOwoJfQoJCglwdWJsaWMgb3ZlcnJpZGUgaW50IEdldEhhc2hDb2RlKCl7IHJldHVybiBfaTsgfQoJCglwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIFRvU3RyaW5nKCl7IHJldHVybiBfaS5Ub1N0cmluZygpOyB9Cn0=