2013多校联合3 G The Unsolvable Problem(hdu 4627)

来源:互联网 发布:淘宝美工教程在线视频 编辑:程序博客网 时间:2024/06/05 06:44

http://acm.hdu.edu.cn/showproblem.php?pid=4627

The Unsolvable Problem

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 230    Accepted Submission(s): 136


Problem Description
There are many unsolvable problem in the world.It could be about one or about zero.But this time it is about bigger number.
Given an integer n(2 <= n <= 109).We should find a pair of positive integer a, b so that a + b = n and [a, b] is as large as possible. [a, b] denote the least common multiplier of a, b.
 

Input
The first line contains integer T(1<= T<= 10000),denote the number of the test cases.
For each test cases,the first line contains an integer n.
 

Output
For each test cases,print the maximum [a,b] in a line.


标准签到题,先特判n==2的情况,否则若n为奇数,则答案显然是n/2 和 n/2+1,若n为偶数设n=2*k,若k为偶数,则答案为k-1,k+1,否则答案为k-2,k+2。

#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#define ll long longusing namespace std;int main(){    //freopen("dd.txt","r",stdin);    ll n,ncase;    cin>>ncase;    while(ncase--)    {        cin>>n;        if(n==2)        cout<<1<<endl;        else        {            if(n%2)            cout<<(n/2)*(n-n/2)<<endl;            else            {                if((n/2)%2==0)                cout<<(n/2-1)*(n/2+1)<<endl;                else                cout<<(n/2-2)*(n/2+2)<<endl;            }        }    }    return 0;}


原创粉丝点击