Phủ bảng
Xem dạng PDF        
            Gửi bài giải
        
    
        
        
    
    
    
    
    
        
                
                
        
            
        
        Điểm:
        
                100,00        
    
    
        Giới hạn thời gian:
        1.0s
    
    
        Giới hạn bộ nhớ:
        256M
    
    
            Input:
            stdin
        
        
            Output:
            stdout
        
    
                    Người đăng:
                        
                    
        
                    Dạng bài                
                
        
                Ngôn ngữ cho phép
            
            
C++, Pascal, Python            
        Hãy tìm một cách phủ kín bảng ~n \times n~ bị mất một ô bằng các quân L-triomino, hoặc chỉ ra không tồn tại cách làm như thế. Biết hình L-triomino là hình có ~3~ ô vuông đơn vị được tạo thành khi ta bỏ ~1~ ô vuông từ hình vuông kích thước ~2 \times 2~. Bốn hình dưới đây mô tả bốn loại hình L-triomino:

Input
- Dòng đầu tiên là số ~n~, ~n~ là một lũy thừa của ~2~, ~2 \le n \le 1024~.
- Dòng thứ hai là hai số ~x, y~ là chỉ số hàng và cột của ô bị mất. Chú ý rằng các hàng đánh số từ ~1~ đến ~n~ từ trên xuống dưới, và các cột đánh số từ ~1~ đến ~n~ từ trái qua phải.
Output
- Dòng đầu tiên in ra YESnếu tồn tại cách làm, in raNOnếu ngược lại.
- Nếu có cách làm thì in ra một bảng ~n \times n~, ô bị mất điền số ~0~, các ô còn lại điền số từ ~1~ đến ~10^9~ sao cho hai ô phủ bởi cùng một quân L-triomino thì có cùng số, còn hai ô phủ bởi khác quân L-triomino thì khác số.
- Nếu có nhiều cách làm thì in ra một cách bất kì.
Example
Input 1
2
1 1
Output 1
YES
0 1
1 1
Input 2
2
1 2
Output 2
YES
69 0
69 69