zoukankan      html  css  js  c++  java
  • 【CF MEMSQL 3.0 B. Lazy Security Guard】

    time limit per test 2 seconds

    memory limit per test 256 megabytes

    input standard input

    output standard output

    Your security guard friend recently got a new job at a new security company. The company requires him to patrol an area of the city encompassing exactly N city blocks, but they let him choose which blocks. That is, your friend must walk the perimeter of a region whose area is exactly N blocks. Your friend is quite lazy and would like your help to find the shortest possible route that meets the requirements. The city is laid out in a square grid pattern, and is large enough that for the sake of the problem it can be considered infinite.

    Input

    Input will consist of a single integer N (1 ≤ N ≤ 106), the number of city blocks that must be enclosed by the route.

    Output

    Print the minimum perimeter that can be achieved.

    Examples

    input

    4

    output

    8

    input

    11

    output

    14

    input

    22

    output

    20

    Note

    Here are some possible shapes for the examples:

    【翻译】有n个长度为1的正方形块拼在一起,求最小周长。

    题解:
         ①先对n开根的出近似边长x。

         ②尝试周长:x*x ,x*(x+1), (x+1)*(x+1),只要块数大于n,输出最小值就可以了。

    #include<stdio.h>
    #include<math.h>
    using namespace std;
    int n,a;
    int main()
    {
    	scanf("%d",&n);
    	a=floor(sqrt(1.0*n)+0.0001);
    	if(a*a>=n)printf("%d
    ",4*a);
    	else if(a*(a+1)>=n)printf("%d
    ",4*a+2);
    	else if((a+1)*(a+1)>=n)printf("%d
    ",4*a+4);return 0;
    }//Paul_Guderian
    
  • 相关阅读:
    Webpack安装及基础配置
    相机拍到了光源的灯珠图像
    面向对象特殊用法
    面向对象初始
    内置函数和必须的模块
    模块基本模式
    函数三
    函数二
    装饰器
    函数初识
  • 原文地址:https://www.cnblogs.com/Damitu/p/7701698.html
Copyright © 2011-2022 走看看