/* 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 Ideone
{
public static void main
( String [ ] args
) {
System .
out .
println ( "Running Shifting array..." ) ;
int [ ] [ ] pattern = new int [ ] [ ] {
{ 1 , 1 , 1 , 1 , 1 , 1 , 1 } ,
{ 1 , 2 , 0 , 0 , 0 , 2 , 1 } ,
{ 1 , 0 , 3 , 0 , 3 , 0 , 1 } ,
{ 1 , 0 , 0 , 4 , 0 , 0 , 1 } ,
{ 1 , 0 , 3 , 0 , 3 , 0 , 1 } ,
{ 1 , 2 , 0 , 0 , 0 , 2 , 1 } ,
{ 1 , 1 , 1 , 1 , 1 , 1 , 1 } ,
} ;
List
< Integer [ ] > output
= twoDArrayList
( 2 , pattern
) ;
int count = 0 ;
while ( it.hasNext ( ) )
{
System .
out .
print ( "Array no. " + count
+ " in the list is : " ) ; {
}
count++;
}
}
public static List
< Integer [ ] > twoDArrayList
( int shift,
int [ ] [ ] input
) {
if ( input.length == 0 ) return null ;
int columnlength = input.length ;
int rowlength = input[ 0 ] .length ;
if ( columnlength != rowlength) return null ;
int padsize = shift;
for ( int i = 0 ; i < padsize; i++ )
{
for ( int j = 0 ; j < shift+ columnlength; j++ )
{
zeroes[ j] = 0 ;
}
output.add ( zeroes ) ;
}
for ( int i = 0 ; i < columnlength; i++ )
{
int [ ] row = input[ i] ;
int [ ] zeroes = new int [ shift] ;
List< Integer> temp = new ArrayList< Integer> ( ) ;
for ( int j = 0 ; j < shift; j++ )
{
temp.add ( 0 ) ;
}
for ( int k = 0 ; k < row.length ; k++ )
{
temp.add ( row[ k] ) ;
}
output.
add ( temp.
toArray ( new Integer [ ] { } ) ) ; }
return output;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKCBTdHJpbmdbXSBhcmdzICkKCXsKCQlTeXN0ZW0ub3V0LnByaW50bG4oICJSdW5uaW5nIFNoaWZ0aW5nIGFycmF5Li4uIiApOwoJCQoJCWludFtdW10gcGF0dGVybiA9IG5ldyBpbnRbXVtdewoJCSAgICAgICAgeyAxLCAxLCAxLCAxLCAxLCAxLCAxIH0sCgkJICAgICAgICB7IDEsIDIsIDAsIDAsIDAsIDIsIDEgfSwKCQkgICAgICAgIHsgMSwgMCwgMywgMCwgMywgMCwgMSB9LAoJCSAgICAgICAgeyAxLCAwLCAwLCA0LCAwLCAwLCAxIH0sCgkJICAgICAgICB7IDEsIDAsIDMsIDAsIDMsIDAsIDEgfSwKCQkgICAgICAgIHsgMSwgMiwgMCwgMCwgMCwgMiwgMSB9LAoJCSAgICAgICAgeyAxLCAxLCAxLCAxLCAxLCAxLCAxIH0sCgkJfTsKCQkKCQlMaXN0PEludGVnZXJbXT4gb3V0cHV0ID0gdHdvREFycmF5TGlzdCggMiwgIHBhdHRlcm4gKTsKCQkKCQlJdGVyYXRvciBpdCA9IG91dHB1dC5pdGVyYXRvcigpOwoJCWludCBjb3VudCA9IDA7CgkJd2hpbGUoIGl0Lmhhc05leHQoKSApCgkJewoJCQlJbnRlZ2VyW10gaW50YXJyYXkgPSAoSW50ZWdlcltdKSBpdC5uZXh0KCk7CgkJCVN5c3RlbS5vdXQucHJpbnQoICJBcnJheSBuby4gIiArIGNvdW50ICsgIiBpbiB0aGUgbGlzdCBpcyA6ICIpOwoJCQlmb3IoIEludGVnZXIgaSA6IGludGFycmF5ICkKCQkJewoJCQkJU3lzdGVtLm91dC5wcmludCggaSArICIgIik7CgkJCX0KCQkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJCWNvdW50Kys7CgkJfQoJfQoJCglwdWJsaWMgc3RhdGljIExpc3Q8SW50ZWdlcltdPiB0d29EQXJyYXlMaXN0KGludCBzaGlmdCwgaW50W11bXSBpbnB1dCkKCXsKCQkKCSAgICBMaXN0PEludGVnZXJbXT4gb3V0cHV0ID0gbmV3IEFycmF5TGlzdDxJbnRlZ2VyW10+KCk7CgkgICAgaWYoIGlucHV0Lmxlbmd0aCA9PSAwICkgcmV0dXJuIG51bGw7CgkgICAgaW50IGNvbHVtbmxlbmd0aCA9IGlucHV0Lmxlbmd0aDsKCSAgICBpbnQgcm93bGVuZ3RoID0gaW5wdXRbMF0ubGVuZ3RoOwoJICAgIGlmIChjb2x1bW5sZW5ndGggIT0gcm93bGVuZ3RoKSByZXR1cm4gbnVsbDsKCgkgICAgaW50IHBhZHNpemUgPSBzaGlmdDsKCSAgICBmb3IoIGludCBpID0gMDsgaSA8IHBhZHNpemU7IGkrKyApCgkgICAgewoJICAgICAgICBJbnRlZ2VyW10gemVyb2VzID0gbmV3IEludGVnZXJbc2hpZnQrY29sdW1ubGVuZ3RoXTsKCSAgICAgICAgCgkgICAgICAgIGZvciggaW50IGogPSAwOyBqIDwgc2hpZnQrY29sdW1ubGVuZ3RoOyBqKyspCgkgICAgICAgIHsKCSAgICAgICAgICAgIHplcm9lc1tqXSA9IDA7CgkgICAgICAgIH0KCSAgICAgICAgb3V0cHV0LmFkZCggemVyb2VzICk7CgkgICAgfQoKCSAgICBmb3IoIGludCBpID0gMDsgaSA8IGNvbHVtbmxlbmd0aDsgaSsrICkKCSAgICB7CgkgICAgICAgIGludFtdIHJvdyA9IGlucHV0W2ldOwoJICAgICAgICBpbnRbXSB6ZXJvZXMgPSBuZXcgaW50W3NoaWZ0XTsKCSAgICAgICAgTGlzdDxJbnRlZ2VyPiB0ZW1wID0gbmV3IEFycmF5TGlzdDxJbnRlZ2VyPigpOwoJICAgICAgICBmb3IoIGludCBqID0gMDsgaiA8IHNoaWZ0OyBqKyspCgkgICAgICAgIHsKCSAgICAgICAgICAgIHRlbXAuYWRkKDApOwoJICAgICAgICB9CgkgICAgICAgIGZvciggaW50IGsgPSAwOyBrIDwgcm93Lmxlbmd0aDsgaysrKQoJICAgICAgICB7CgkgICAgICAgICAgICB0ZW1wLmFkZChyb3dba10pOwoJICAgICAgICB9CgkgICAgICAgIG91dHB1dC5hZGQodGVtcC50b0FycmF5KG5ldyBJbnRlZ2VyW117fSkpOwoJICAgIH0KCgkgICAgcmV0dXJuIG91dHB1dDsKCX0KfQ==