• 【74.00%】【codeforces 747A】Display Size


    time limit per test1 second
    memory limit per test256 megabytes
    inputstandard input
    outputstandard output
    A big company decided to launch a new series of rectangular displays, and decided that the display must have exactly n pixels.

    Your task is to determine the size of the rectangular display — the number of lines (rows) of pixels a and the number of columns of pixels b, so that:

    there are exactly n pixels on the display;
    the number of rows does not exceed the number of columns, it means a ≤ b;
    the difference b - a is as small as possible.
    Input
    The first line contains the positive integer n (1 ≤ n ≤ 106) — the number of pixels display should have.

    Output
    Print two integers — the number of rows and columns on the display.

    Examples
    input
    8
    output
    2 4
    input
    64
    output
    8 8
    input
    5
    output
    1 5
    input
    999999
    output
    999 1001
    Note
    In the first example the minimum possible difference equals 2, so on the display should be 2 rows of 4 pixels.

    In the second example the minimum possible difference equals 0, so on the display should be 8 rows of 8 pixels.

    In the third example the minimum possible difference equals 4, so on the display should be 1 row of 5 pixels.

    【题目链接】:http://codeforces.com/contest/747/problem/A

    【题解】

    暴力枚举n的因子x
    看看n/x是不是满足x<=n/x
    然后记录那个差最小的就好.

    【完整代码】

    #include <bits/stdc++.h>
    using namespace std;
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    #define mp make_pair
    #define pb push_back
    #define fi first
    #define se second
    #define rei(x) scanf("%d",&x)
    #define rel(x) scanf("%I64d",&x)
    
    typedef pair<int,int> pii;
    typedef pair<LL,LL> pll;
    
    //const int MAXN = x;
    const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
    const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
    const double pi = acos(-1.0);
    
    int n;
    int ma = 1e7,ansa,ansb;
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
        rei(n);
        rep1(i,1,n)
        if ((n%i)==0)
        {
            int a = n/i;
            int b = i;
            if (a <= b)
            {
                if (b-a<=ma)
                {
                    ma = b-a;
                    ansa = a;
                    ansb = b;
                }
            }
        }
        cout << ansa<<" "<<ansb<<endl;
        return 0;
    }
  • 相关阅读:
    windows 安装 ELK(Elasticsearch,Logstash,kibana)
    NSSM 将程序封装成服务软件
    面试-双向链表
    mySql 事务,游标以及循环
    SQL 事务
    C# Windows 服务
    MVC 中ajax 调用Webservice 或WCF 问题
    js prototype
    计算一个数等于其它数相加的所有可能 如: 5 =1+4 ,1+3+1,2+3,2+2+1,1+1+1+1+1,1+1+1+2
    冒泡排序,选择排序,快速排序
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626797.html
Copyright © 2020-2023  润新知