/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class GenericClass< T,U>
{
public T id;
public U name;
GenericClass( T id, U name)
{
this .id = id;
this .name = name;
}
public static < E>
E add( E n1, E n2)
{
return n2;
}
}
class Ideone
{
public static void mergesort( int arr[ ] )
{
int size = arr.length ;
if ( size < 2 )
return ;
int middle = size/ 2 ;
int index = 0 ;
int left[ ] = new int [ middle] ;
for ( index = 0 ; index< middle; index++ )
left[ index] = arr[ index] ;
int right[ ] = new int [ size- middle] ;
for ( int i= 0 ; index< size; i++ ,index++ )
right[ i] = arr[ index] ;
mergesort( left) ;
mergesort( right) ;
merge_arrays( left,right,arr) ;
}
public static void merge_arrays( int [ ] left, int right[ ] , int arr[ ] )
{
int l= 0 ,r= 0 ,index= 0 ;
while ( l< left.length && r< right.length )
{
if ( left[ l] < right[ r] )
{
arr[ index] = left[ l] ;
index++;
l++;
}
else
{
arr[ index] = right[ r] ;
index++;
r++;
}
}
while ( l< left.length )
{
arr[ index++ ] = left[ l++ ] ;
}
while ( r< right.length )
{
arr[ index++ ] = right[ r++ ] ;
}
}
public static void bubblesort( int [ ] arr)
{
boolean flag= true ;
while ( flag)
{
flag = false ;
for ( int j= 0 ; j< arr.length - 1 ; j++ )
{
if ( arr[ j+ 1 ] < arr[ j] )
{
int temp = arr[ j+ 1 ] ;
arr[ j+ 1 ] = arr[ j] ;
arr[ j] = temp;
flag = true ;
}
}
}
}
class Check
{
public int data;
}
{
Check obj1 = new Check( ) ;
obj1.data = 1 ;
Check obj2 = new Check( ) ;
obj2 = obj1;
obj2.data = 3 ;
/* int arr[] = {3,2,4,5,1,7};
bubblesort(arr);
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");*/
/*// your code goes here
GenericClass<Integer,String> obj = new GenericClass<Integer,String>(2,"Atreya");
System.out.println(obj.id+" "+obj.name);
GenericClass.add<Integer>(2.4,3);*/
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KCmNsYXNzIEdlbmVyaWNDbGFzczxULFU+CnsKCXB1YmxpYyBUIGlkOwoJcHVibGljIFUgbmFtZTsKCUdlbmVyaWNDbGFzcyhUIGlkLCBVIG5hbWUpCgl7CgkJdGhpcy5pZCA9IGlkOwoJCXRoaXMubmFtZSA9IG5hbWU7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgPEU+CglFIGFkZChFIG4xLCBFIG4yKQoJewoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbihuMSk7CgkJcmV0dXJuIG4yOwoJfQp9CgpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1lcmdlc29ydChpbnQgYXJyW10pCgl7CgkJaW50IHNpemUgPSBhcnIubGVuZ3RoOwoJCWlmKHNpemUgPDIpCgkJcmV0dXJuOwoJCQoJCWludCBtaWRkbGUgPSBzaXplLzI7CgkJaW50IGluZGV4ID0wOwoJCQoJCWludCBsZWZ0W10gPSBuZXcgaW50W21pZGRsZV07CgkJZm9yKGluZGV4ID0wO2luZGV4PG1pZGRsZTtpbmRleCsrKQoJCWxlZnRbaW5kZXhdID0gYXJyW2luZGV4XTsKCQkKCQlpbnQgcmlnaHRbXSA9IG5ldyBpbnRbc2l6ZS0gbWlkZGxlXTsKCQlmb3IoaW50IGk9MDtpbmRleDxzaXplO2krKyxpbmRleCsrKQoJCXJpZ2h0W2ldPWFycltpbmRleF07CgkJCgkJbWVyZ2Vzb3J0KGxlZnQpOwoJCW1lcmdlc29ydChyaWdodCk7CgkJbWVyZ2VfYXJyYXlzKGxlZnQscmlnaHQsYXJyKTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1lcmdlX2FycmF5cyhpbnRbXSBsZWZ0LCBpbnQgcmlnaHRbXSwgaW50IGFycltdKQoJewoJCWludCBsPTAscj0wLGluZGV4PTA7CgkJCgkJd2hpbGUobDxsZWZ0Lmxlbmd0aCAmJiByPHJpZ2h0Lmxlbmd0aCkKCQl7CgkJCWlmKGxlZnRbbF0gPCByaWdodFtyXSkKCQkJewoJCQkJYXJyW2luZGV4XT0gbGVmdFtsXTsKCQkJCWluZGV4Kys7CgkJCQlsKys7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlhcnJbaW5kZXhdPSByaWdodFtyXTsKCQkJCWluZGV4Kys7CgkJCQlyKys7CgkJCX0KCQl9CgkJCgkJd2hpbGUobDxsZWZ0Lmxlbmd0aCkKCQl7CgkJCWFycltpbmRleCsrXT1sZWZ0W2wrK107CgkJfQoJCXdoaWxlKHI8cmlnaHQubGVuZ3RoKQoJCXsKCQkJYXJyW2luZGV4KytdPSByaWdodFtyKytdOwoJCX0KCQkKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIGJ1YmJsZXNvcnQoaW50W10gYXJyKQoJewoJCWJvb2xlYW4gZmxhZz0gdHJ1ZTsKCQkKCQl3aGlsZShmbGFnKQoJCXsKCQkJZmxhZyA9IGZhbHNlOwoJCQlmb3IoaW50IGo9MDtqPGFyci5sZW5ndGggLTE7aisrKQoJCQl7CgkJCQlpZihhcnJbaisxXTxhcnJbal0pCgkJCQl7CgkJCQkJaW50IHRlbXAgPSBhcnJbaisxXTsKCQkJCQlhcnJbaisxXT1hcnJbal07CgkJCQkJYXJyW2pdPXRlbXA7CgkJCQkJZmxhZyA9IHRydWU7CgkJCQl9CgkJCX0KCQl9Cgl9CgljbGFzcyBDaGVjawoJewoJCXB1YmxpYyBpbnQgZGF0YTsKCQkKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUNoZWNrIG9iajEgPSBuZXcgQ2hlY2soKTsKCQlvYmoxLmRhdGEgPTE7CgkJQ2hlY2sgb2JqMiA9IG5ldyBDaGVjaygpOwoJCW9iajIgPSBvYmoxOwoJCW9iajIuZGF0YSA9MzsKCQlTeXN0ZW0ub3V0LnByaW50KG9iajEuZGF0YSk7CgkvKglpbnQgYXJyW10gPSB7MywyLDQsNSwxLDd9OwoJCWJ1YmJsZXNvcnQoYXJyKTsKCQlmb3IoaW50IGk9MDtpPGFyci5sZW5ndGg7aSsrKQoJCVN5c3RlbS5vdXQucHJpbnQoYXJyW2ldKyIgIik7Ki8KCQkvKi8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlHZW5lcmljQ2xhc3M8SW50ZWdlcixTdHJpbmc+IG9iaiA9IG5ldyBHZW5lcmljQ2xhc3M8SW50ZWdlcixTdHJpbmc+KDIsIkF0cmV5YSIpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihvYmouaWQrIiAiK29iai5uYW1lKTsKCQkKCQlHZW5lcmljQ2xhc3MuYWRkPEludGVnZXI+KDIuNCwzKTsqLwoJfQp9