- /* package whatever; // don't place package name! */ 
-   
- import java.util.concurrent.ThreadLocalRandom; 
-   
- /* Name of the class has to be "Main" only if the class is public. */ 
- class Ideone 
- { 
- 	static char board[][]; 
- 	static boolean tryPlace(int x,int y,int width,int height) { 
-       for(int i=0;i<height;i++) { 
-         for(int j=0;j<width;j++) { 
-           if(board[y+i][x+j]!='.') { 
-             return false; // ship can not be placed 
-           } 
-         } 
-       } 
-       // if we reach here, ship can be placed 
-       for(int i=0;i<height;i++) { 
-         for(int j=0;j<width;j++) { 
-           board[y+i][x+j]='#'; 
-         } 
-       } 
-       return true; // ship placed successfully 
-     } 
-   
- 	{ 
- 	  ThreadLocalRandom random=ThreadLocalRandom.current(); 
-       board=new char[10][10]; 
-       for(int i=0;i<10;i++) 
-         for(int j=0;j<10;j++) 
-           board[i][j]='.'; 
-   
-       int size=3; 
-       int amount=2; 
-       while(amount>0) { 
-         if(random.nextBoolean()) { 
-           // horizontal 
-           if(tryPlace(random.nextInt(10-size+1),random.nextInt(10),size,1)){ 
-             amount--; // one placed 
-           } 
-         } else { 
-           // vertical 
-           if(tryPlace(random.nextInt(10),random.nextInt(10-size+1),1,size)){ 
-             amount--; // one placed 
-           } 
-         } 
-       } 
-   
-       // and a 4x2 mothership 
-       while(!(random.nextBoolean() 
-         ?tryPlace(random.nextInt(7),random.nextInt(9),4,2) 
-         :tryPlace(random.nextInt(9),random.nextInt(7),2,4) 
-       )); 
-   
-       for(int i=0;i<10;i++) 
-         System- . out- . println(- board [- i ]); // char[] has special overload for print/ln()
 
-     } 
- } 
-   
				LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZExvY2FsUmFuZG9tOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglzdGF0aWMgY2hhciBib2FyZFtdW107CglzdGF0aWMgYm9vbGVhbiB0cnlQbGFjZShpbnQgeCxpbnQgeSxpbnQgd2lkdGgsaW50IGhlaWdodCkgewogICAgICBmb3IoaW50IGk9MDtpPGhlaWdodDtpKyspIHsKICAgICAgICBmb3IoaW50IGo9MDtqPHdpZHRoO2orKykgewogICAgICAgICAgaWYoYm9hcmRbeStpXVt4K2pdIT0nLicpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBzaGlwIGNhbiBub3QgYmUgcGxhY2VkCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIGlmIHdlIHJlYWNoIGhlcmUsIHNoaXAgY2FuIGJlIHBsYWNlZAogICAgICBmb3IoaW50IGk9MDtpPGhlaWdodDtpKyspIHsKICAgICAgICBmb3IoaW50IGo9MDtqPHdpZHRoO2orKykgewogICAgICAgICAgYm9hcmRbeStpXVt4K2pdPScjJzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7IC8vIHNoaXAgcGxhY2VkIHN1Y2Nlc3NmdWxseQogICAgfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJICBUaHJlYWRMb2NhbFJhbmRvbSByYW5kb209VGhyZWFkTG9jYWxSYW5kb20uY3VycmVudCgpOwogICAgICBib2FyZD1uZXcgY2hhclsxMF1bMTBdOwogICAgICBmb3IoaW50IGk9MDtpPDEwO2krKykKICAgICAgICBmb3IoaW50IGo9MDtqPDEwO2orKykKICAgICAgICAgIGJvYXJkW2ldW2pdPScuJzsKCiAgICAgIGludCBzaXplPTM7CiAgICAgIGludCBhbW91bnQ9MjsKICAgICAgd2hpbGUoYW1vdW50PjApIHsKICAgICAgICBpZihyYW5kb20ubmV4dEJvb2xlYW4oKSkgewogICAgICAgICAgLy8gaG9yaXpvbnRhbAogICAgICAgICAgaWYodHJ5UGxhY2UocmFuZG9tLm5leHRJbnQoMTAtc2l6ZSsxKSxyYW5kb20ubmV4dEludCgxMCksc2l6ZSwxKSl7CiAgICAgICAgICAgIGFtb3VudC0tOyAvLyBvbmUgcGxhY2VkCiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIHZlcnRpY2FsCiAgICAgICAgICBpZih0cnlQbGFjZShyYW5kb20ubmV4dEludCgxMCkscmFuZG9tLm5leHRJbnQoMTAtc2l6ZSsxKSwxLHNpemUpKXsKICAgICAgICAgICAgYW1vdW50LS07IC8vIG9uZSBwbGFjZWQKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGFuZCBhIDR4MiBtb3RoZXJzaGlwCiAgICAgIHdoaWxlKCEocmFuZG9tLm5leHRCb29sZWFuKCkKICAgICAgICA/dHJ5UGxhY2UocmFuZG9tLm5leHRJbnQoNykscmFuZG9tLm5leHRJbnQoOSksNCwyKQogICAgICAgIDp0cnlQbGFjZShyYW5kb20ubmV4dEludCg5KSxyYW5kb20ubmV4dEludCg3KSwyLDQpCiAgICAgICkpOwoKICAgICAgZm9yKGludCBpPTA7aTwxMDtpKyspCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJvYXJkW2ldKTsgLy8gY2hhcltdIGhhcyBzcGVjaWFsIG92ZXJsb2FkIGZvciBwcmludC9sbigpCiAgICB9Cn0K