HDU 2177 —— 取(2堆)石子游戏

来源:互联网 发布:mac 列出文件路径 命令 编辑:程序博客网 时间:2024/04/27 22:46

原题:http://acm.hdu.edu.cn/showproblem.php?pid=2177


#include<iostream>#include<cmath>using namespace std;int a, b;int main(){    while(cin>>a>>b){        if(a == 0 && b == 0)    break;        double tmp = (sqrt(5)+1)/2.0;        if(a > b)   swap(a, b);        int k = b-a;        int minn = k*tmp;        if(minn == a){            cout<<"0"<<endl;            continue;        }        cout<<"1"<<endl;        int maxx = minn+k;        if(minn < a && maxx < b && a-minn == b-maxx && a-minn <= a) cout<<minn<<" "<<maxx<<endl;    //两堆同时取        for(int i = 0;i<=b;i++){    //只取其中一堆            minn = i*tmp;            maxx = minn+i;            if(minn == a && maxx < b){                cout<<minn<<" "<<maxx<<endl;                break;            }            if(maxx == b && minn < a){                cout<<minn<<" "<<maxx<<endl;                break;            }            if(maxx == a && minn < b){                cout<<minn<<" "<<maxx<<endl;                break;            }        }    }    return 0;}


0 0
原创粉丝点击