CF w3d1 B. Marlin

The city of Fishtopia can be imagined as a grid of 4 rows and an odd number of columns. It has two main villages; the first is located at the top-left cell (1,1), people who stay there love fishing at the Tuna pond at the bottom-right cell (4,n). The second village is located at (4,1) and its people love the Salmon pond at (1,n).

The mayor of Fishtopia wants to place k hotels in the city, each one occupying one cell. To allow people to enter the city from anywhere, hotels should not be placed on the border cells.

A person can move from one cell to another if those cells are not occupied by hotels and share a side.

Can you help the mayor place the hotels in a way such that there are equal number of shortest paths from each village to its preferred pond?

Input

The first line of input contain two integers, n and k (3≤n≤99, 0≤k≤2×(n−2)), n is odd, the width of the city, and the number of hotels to be placed, respectively.

Output

Print "YES", if it is possible to place all the hotels in a way that satisfies the problem statement, otherwise print "NO".

If it is possible, print an extra 4 lines that describe the city, each line should have n characters, each of which is "#" if that cell has a hotel on it, or "." if not.

Examples

inputCopy
7 2
outputCopy
YES
.......
.#.....
.#.....
.......
inputCopy
5 3
outputCopy
YES
.....
.###.
.....
.....

#include<bits/stdc++.h>
using namespace std;
int f[5][105],n,k;
int main()
{
	cin>>n>>k;
	cout<<"YES"<<endl;
	if(k%2==0){
		int cnt=0;
		for(int i=2;cnt<k;i++,cnt+=2){
			f[2][i]=1;
			f[3][i]=1;
		}
	}
	else if(k==1)f[2][n/2+1]=1;
	else{
		k--;
		int mark=n/2+1,cnt=k;
		f[2][mark]=1;
		for(int i=1;mark-i>=2&&mark+i<=n-1;i++){
			f[2][mark+i]=1;
			f[2][mark-i]=1;
			cnt-=2;
			if(cnt==0)break;
		}
		if(cnt>0)for(int i=1;mark-i>=2&&mark+i<=n-1;i++){
			f[3][mark+i]=1;
			f[3][mark-i]=1;
			cnt-=2;
			if(cnt==0)break;
		}
	}
	for(int i=1;i<=4;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j])cout<<"#";
			else cout<<".";
		}
		cout<<endl;
	}
	return 0;
}

猜你喜欢

转载自www.cnblogs.com/LiangYC1021/p/12741601.html