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 andn 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.
The only line contains a single integer x (1 ≤ x ≤ 100) — the required sharpness of the matrix.
Print a single number — the sought value of n.
4
3
9
5
The figure below shows the matrices that correspond to the samples:
![](https://i-blog.csdnimg.cn/blog_migrate/20a2274416d34cf684fe5cb0cbf942b8.png)
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <queue>
#include <cmath>
#include <string>
using namespace std;
typedef long long LL;
const int maxn = 100 + 5;
int f[maxn];
int main(){
f[1] = f[2] = 1;
for(int i = 3;i < maxn;i+=2){
f[i] = f[i+1] = (i/2)*i + (i/2+1);
}
int n;
while(cin >> n){
if(n == 3){
cout << 5 << endl;
continue;
}
for(int i = 1;i < maxn;i+=2){
if(n <= f[i]){
cout << i << endl;
break;
}
}
}
return 0;
}