- /* 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 tryPlaceWithBorder(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=1;i<height-1;i++) 
-         for(int j=1;j<width-1;j++) 
-           board[y+i][x+j]='#'; 
-       return true; // ship placed successfully 
-     } 
-   
- 	{ 
- 	  ThreadLocalRandom random=ThreadLocalRandom.current(); 
-       board=new char[12][12]; 
-       for(int i=0;i<12;i++) 
-         for(int j=0;j<12;j++) 
-           board[i][j]='.'; 
-   
-       int size=3; 
-       int amount=2; 
-       while(amount>0) { 
-         if(random.nextBoolean()) { 
-           // horizontal 
-           if(tryPlaceWithBorder(random.nextInt(12-size-1),random.nextInt(10),size+2,3)) 
-             amount--; // one placed 
-         } else { 
-           // vertical 
-           if(tryPlaceWithBorder(random.nextInt(10),random.nextInt(12-size-1),3,size+2)){ 
-             amount--; // one placed 
-           } 
-         } 
-       } 
-   
-       // and a 4x2 mothership 
-       while(!(random.nextBoolean() 
-         ?tryPlaceWithBorder(random.nextInt(7),random.nextInt(9),6,4) 
-         :tryPlaceWithBorder(random.nextInt(9),random.nextInt(7),4,6) 
-       )); 
-   
-       for(int i=1;i<11;i++) 
-     } 
- } 
-   
				LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZExvY2FsUmFuZG9tOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglzdGF0aWMgY2hhciBib2FyZFtdW107CglzdGF0aWMgYm9vbGVhbiB0cnlQbGFjZVdpdGhCb3JkZXIoaW50IHgsaW50IHksaW50IHdpZHRoLGludCBoZWlnaHQpIHsKICAgICAgZm9yKGludCBpPTA7aTxoZWlnaHQ7aSsrKQogICAgICAgIGZvcihpbnQgaj0wO2o8d2lkdGg7aisrKQogICAgICAgICAgaWYoYm9hcmRbeStpXVt4K2pdIT0nLicpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gc2hpcCBjYW4gbm90IGJlIHBsYWNlZAogICAgICAvLyBpZiB3ZSByZWFjaCBoZXJlLCBzaGlwIGNhbiBiZSBwbGFjZWQKICAgICAgZm9yKGludCBpPTE7aTxoZWlnaHQtMTtpKyspCiAgICAgICAgZm9yKGludCBqPTE7ajx3aWR0aC0xO2orKykKICAgICAgICAgIGJvYXJkW3kraV1beCtqXT0nIyc7CiAgICAgIHJldHVybiB0cnVlOyAvLyBzaGlwIHBsYWNlZCBzdWNjZXNzZnVsbHkKICAgIH0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCSAgVGhyZWFkTG9jYWxSYW5kb20gcmFuZG9tPVRocmVhZExvY2FsUmFuZG9tLmN1cnJlbnQoKTsKICAgICAgYm9hcmQ9bmV3IGNoYXJbMTJdWzEyXTsKICAgICAgZm9yKGludCBpPTA7aTwxMjtpKyspCiAgICAgICAgZm9yKGludCBqPTA7ajwxMjtqKyspCiAgICAgICAgICBib2FyZFtpXVtqXT0nLic7CgogICAgICBpbnQgc2l6ZT0zOwogICAgICBpbnQgYW1vdW50PTI7CiAgICAgIHdoaWxlKGFtb3VudD4wKSB7CiAgICAgICAgaWYocmFuZG9tLm5leHRCb29sZWFuKCkpIHsKICAgICAgICAgIC8vIGhvcml6b250YWwKICAgICAgICAgIGlmKHRyeVBsYWNlV2l0aEJvcmRlcihyYW5kb20ubmV4dEludCgxMi1zaXplLTEpLHJhbmRvbS5uZXh0SW50KDEwKSxzaXplKzIsMykpCiAgICAgICAgICAgIGFtb3VudC0tOyAvLyBvbmUgcGxhY2VkCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIHZlcnRpY2FsCiAgICAgICAgICBpZih0cnlQbGFjZVdpdGhCb3JkZXIocmFuZG9tLm5leHRJbnQoMTApLHJhbmRvbS5uZXh0SW50KDEyLXNpemUtMSksMyxzaXplKzIpKXsKICAgICAgICAgICAgYW1vdW50LS07IC8vIG9uZSBwbGFjZWQKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGFuZCBhIDR4MiBtb3RoZXJzaGlwCiAgICAgIHdoaWxlKCEocmFuZG9tLm5leHRCb29sZWFuKCkKICAgICAgICA/dHJ5UGxhY2VXaXRoQm9yZGVyKHJhbmRvbS5uZXh0SW50KDcpLHJhbmRvbS5uZXh0SW50KDkpLDYsNCkKICAgICAgICA6dHJ5UGxhY2VXaXRoQm9yZGVyKHJhbmRvbS5uZXh0SW50KDkpLHJhbmRvbS5uZXh0SW50KDcpLDQsNikKICAgICAgKSk7CgogICAgICBmb3IoaW50IGk9MTtpPDExO2krKykKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oU3RyaW5nLnZhbHVlT2YoYm9hcmRbaV0sMSwxMCkpOwogICAgfQp9Cg==