import java.util.*;
import java.lang.*;
class Main
{
{
Something st1 = new Something(1,2.3);
Something st2 = new Something(4,5.6);
st1.print();
st2.print();
//st1.swap(st2);
swap(st1, st2);
st1.print();
st2.print();
}
private static <T extends Swappable> void swap(T a, T b)
{
a.swap(b);
}
}
interface Swappable<T extends Swappable>
{
public void swap(T other);
}
class Something implements Swappable<Something>
{
private int i;
private double d;
public Something(int _i, double _d)
{
this.i = _i;
this.d = _d;
}
public void print()
{
System.
out.
println("i: " + i
+ "\r\nd: " + d
+ "\r\n"); }
public void swap(Something other)
{
int _i = other.i;
double _d = other.d;
other.i = this.i;
other.d = this.d;
this.i = _i;
this.d = _d;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CgpjbGFzcyBNYWluCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN5c3RlbS5vdXQucHJpbnRsbigiYWJjIik7CgkJCgkJU29tZXRoaW5nIHN0MSA9IG5ldyBTb21ldGhpbmcoMSwyLjMpOwoJCVNvbWV0aGluZyBzdDIgPSBuZXcgU29tZXRoaW5nKDQsNS42KTsKCQkKCQlzdDEucHJpbnQoKTsKCQlzdDIucHJpbnQoKTsKCQkKCQkvL3N0MS5zd2FwKHN0Mik7CgkJc3dhcChzdDEsIHN0Mik7CgkJCgkJc3QxLnByaW50KCk7CgkJc3QyLnByaW50KCk7Cgl9CgkKCXByaXZhdGUgc3RhdGljIDxUIGV4dGVuZHMgU3dhcHBhYmxlPiB2b2lkIHN3YXAoVCBhLCBUIGIpCgl7CgkJYS5zd2FwKGIpOwoJfQp9CgppbnRlcmZhY2UgU3dhcHBhYmxlPFQgZXh0ZW5kcyBTd2FwcGFibGU+CnsKCXB1YmxpYyB2b2lkIHN3YXAoVCBvdGhlcik7Cn0KCmNsYXNzIFNvbWV0aGluZyBpbXBsZW1lbnRzIFN3YXBwYWJsZTxTb21ldGhpbmc+CnsKCXByaXZhdGUgaW50IGk7Cglwcml2YXRlIGRvdWJsZSBkOwoJCglwdWJsaWMgU29tZXRoaW5nKGludCBfaSwgZG91YmxlIF9kKQoJewoJCXRoaXMuaSA9IF9pOwoJCXRoaXMuZCA9IF9kOwoJfQoJCglwdWJsaWMgdm9pZCBwcmludCgpCgl7CgkJU3lzdGVtLm91dC5wcmludGxuKCJpOiAiICsgaSArICJcclxuZDogIiArIGQgKyAiXHJcbiIpOwoJfQoJCglwdWJsaWMgdm9pZCBzd2FwKFNvbWV0aGluZyBvdGhlcikKCXsKCQlpbnQgX2kgPSBvdGhlci5pOwoJCWRvdWJsZSBfZCA9IG90aGVyLmQ7CgkJCgkJb3RoZXIuaSA9IHRoaXMuaTsKCQlvdGhlci5kID0gdGhpcy5kOwoJCQoJCXRoaXMuaSA9IF9pOwoJCXRoaXMuZCA9IF9kOwoJfQp9