zoukankan      html  css  js  c++  java
  • C语言编程练习36:赌徒

    题目描述

    有n个赌徒打算赌一局。规则是:
    每人下一个赌注,赌注为非负整数,且任意两个赌注都不相同。胜者为赌注恰好是其余任意三个人的赌注之和的那个人。如果有多个胜者,我们取赌注最大的那个为最终胜者。
    例如,A,B,C,D,E分别下赌注为2、3、5、7、12,最终胜者是E,因为12=2+3+7。

    输入

    输入包含多组测试数据。每组首先输入一个整数n(1<=n<=1000),表示赌徒的个数。
    接下来n行每行输入一个非负整数b(0<=b<32768),表示每个赌徒下的赌注。
    当n=0时,输入结束。

    输出

    对于每组输入,输出最终胜者的赌注,如果没有胜者,则输出no solution。

    样例输入 Copy

    5
    2 
    3 
    5 
    7 
    12
    5
    2 
    16 
    64 
    256 
    1024
    0

    样例输出 Copy

    12
    no solution

    机构平台标程
    #include<cstdio>
    #include<algorithm>
    using namespace std;
     
    int bs(int a[],int l,int r,int x)
    {
        int m;
        while(l<r)
        {
            m=(l+r)>>1;
            if(a[m]==x)
                return m;
            if(a[m]<x)
                l=m+1;
            else
                r=m;
        }
        return -1;
    }
     
    int main()
    {
        int n,a[1000],i,j,k,bet,p,flag,ans;
        while(scanf("%d",&n)!=EOF,n)
        {
            for(i=0;i<n;i++)
                scanf("%d",&a[i]);
            sort(a,a+n);
            for(flag=0,i=n-1;i>=0;i--)
            {
                for(j=0;j<i;j++)
                {
                    for(k=j+1;k<n;k++)
                    {
                        bet=a[i]-a[j]-a[k];
                        p=bs(a,k+1,n,bet);
                        if(p!=-1&&p!=i)
                        {
                            ans=i;
                            flag=1;
                            break;
                        }
                    }
                    if(flag)
                        break;
                }
                if(flag)
                    break;
            }
            if(flag)
                printf("%d
    ",a[ans]);
            else
                puts("no solution");
        }
        return 0;
    }
    


  • 相关阅读:
    SQl 事务 异常和游标
    SHarepoint 2007 内容类型
    如何在Sharepoint 2010 中使用Session
    Jquery 选择器
    学习资料
    创建自定义主机头网站集
    MOSS Single Sign On Setup StepByStep
    toolip 属性小知识
    基于多层结构的网络游戏平台的研究与应用
    Jabber 技 术 概 况
  • 原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14335697.html
Copyright © 2011-2022 走看看