Consider some square matrix A with side n consisting of zeros and ones. There are n rows numbered from 1 to n from top to bottom and n columns numbered from 1 to n from left to right in this matrix. We'll denote the element of the matrix which is located at the intersection of the i-row and the j-th column as Ai, j.
Let's call matrix A clear if no two cells containing ones have a common side.
Let's call matrix A symmetrical if it matches the matrices formed from it by a horizontal and/or a vertical reflection. Formally, for each pair (i, j) (1 ≤ i, j ≤ n) both of the following conditions must be met: Ai, j = An - i + 1, j and Ai, j = Ai, n - j + 1.
Let's define the sharpness of matrix A as the number of ones in it.
Given integer x, your task is to find the smallest positive integer n such that there exists a clear symmetrical matrix A with side n and sharpness x.
Input
The only line contains a single integer x (1 ≤ x ≤ 100) — the required sharpness of the matrix.
Output
Print a single number — the sought value of n.
Example
4
3
9
5
Note
The figure below shows the matrices that correspond to the samples
题解:①当n是偶数时,n-1所用到1的个数比n多。
②当n是奇数时,最多能用(n*n+1)/2个1。
③能用奇数构成所有的x。
①和③没证明出来,画图归纳的。。。。。
注意:x=1,n=1; x=2,n=3; x=3,n=5;
1 #include2 using namespace std; 3 4 int x; 5 int a[]={ 1,5,13,25,41,61,85,113}; 6 int b[]={ 1,3,5,7,9,11,13,15}; 7 8 int main() 9 { cin>>x;10 int p=0;11 if(x==3){ cout<<"5"<