hdu5924Mr. Frog’s Problem

来源:互联网 发布:淘宝双十一红包口令 编辑:程序博客网 时间:2024/05/17 12:02



Mr. Frog’s Problem

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1337    Accepted Submission(s): 765


Problem Description
One day, you, a clever boy, feel bored in your math class, and then fall asleep without your control. In your dream, you meet Mr. Frog, an elder man. He has a problem for you.

He gives you two positive integers A and B, and your task is to find all pairs of integers (C, D), such that ACB,ADB and AB+BACD+DC
 

Input
first line contains only one integer T (T125), which indicates the number of test cases. Each test case contains two integers A and B (1AB1018).
 

Output
For each test case, first output one line "Case #x:", where x is the case number (starting from 1). 

Then in a new line, print an integer s indicating the number of pairs you find.

In each of the following s lines, print a pair of integers C and D. pairs should be sorted by C, and then by D in ascending order.
 

Sample Input
210 109 27
 

Sample Output
Case #1:110 10Case #2:29 2727 9
 

Source
2016CCPC东北地区大学生程序设计竞赛 - 重现赛



题目大意:A≤C≤B,A≤D≤B and A/B+B/A≤C/D+D/C,z找到满足关系式的c,d对数 
解题思路:其实经过一些实验你会发现,如果A,B相等,那满足式子的只有一对,即c,d,与a,,b相等,如果两个数不相等,则只有两对,c=a,d=b或c=b,d=a,这样这道题就变得相当简单了

#include <iostream>#include<stdio.h>using namespace std;typedef long long ll;int main(){    int t;    scanf("%d",&t);    ll path=1;    while(t--)    {        ll a,b;        scanf("%lld%lld",&a,&b);        if(a==b)        {            printf("Case #%lld:\n",path++);            printf("1\n");            printf("%lld %lld\n",a,b);        }        else if(a!=b)        {             printf("Case #%lld:\n",path++);            printf("2\n");            if(a<b)            {            printf("%lld %lld\n",a,b);            printf("%lld %lld\n",b,a);            }            else if(a>b)            {                printf("%lld %lld\n",b,a);            printf("%lld %lld\n",a,b);            }        }    }    return 0;}



原创粉丝点击